MR !1353: L1 Tx threading update
Removed active waiting loop which could block threads. Instead a separate thread to reorder the finished job is used.
MR !1404: \[CI\] rtmon per test
so far we had 1 default cfg file for real time processing check (html table).
now we can have a specific file per test, the yaml config file has to be specified in the xml
MR !1371: NR UE capabilities
-Capabilities for OAI UE from xml file (for now copy-pasted from a COTS UE, to be modified in the framework of harmonization of RRC configuration at gNB).
-For phy-test and do-ra mode, the gNB directly reads the xml file.
MR !1397: fix issue created from fix int8 overflow (int8 overflox is small)
-ptrs computation was making uint8 overflow, i fixed it, but then, as the overflow is negative, it became a very high positive number (uint8 0-1 is "only" 255)
MR !1390: ci-improvements
-store executables with which core dumps have been created for better analysis
-do not capture GTP, bloating PCAPs
-complete + order build_oai help
-build all libraries in containers (e.g., nrscope, telnet, ...)
-increase (containerized, 5G) RFsim throughput and tentatively analyze
MR !1391: T tracer: add option to have both T traces and regular console logs
Use --T_stdout 2 to have both.
--T_stdout 0 is still the way to have only T traces and no console logs.
MR !1387: nr ue: fix rlc and pdcp tick generation
Ticks have to come every millisecond. The code was calling tick only for DL slots.
(This whole logic will change at some point, this tick mechanism is not good. But in the meantime, let's fix anyway.)
MR !1384: Rfsim chan mod bug
infinite loop in function uniformrandom() if randominit() has not been called before
MR !1334: Fixes, MR 1257 1225 followup
Fixes after MR 1257 1225: sanitize address error introduced in ldpctest when using alternative ldpc libraries and LOG flooding introduced in nrUE. Also improved openCL ldpc library build.
MR !1274 : L2 Emulator for NSA Mode
This merge request will incorporate the NSA UE with the L2 Emulator (bypassing of layer 1).
These changes include the following features:
-NSA Interface between LTE and NR UE is properly established. These include the following steps:
First UE capability enquiry is sent to NR UE
NR UE updates and fills first capability enquiry
eNB request for a measurement report
Measurement request is sent to NR UE
Measurement report is filled in NR UE
Measurement report is received in eNB
Request for second UE capability enquiry
Send second enquiry to NR UE
Second capability information is filled by NR UE
Second capability information is sent to eNB
NR UE capability information is received in gNB
Periodic measurement report received in gNB
RRCReconfigurationRequest is sent to NR UE
RRCReconfigurationComplete is sent from NR UE
RACH is received in the gNB
RAR is received in NR UE
Msg 3 is generated and sent to gNB
CFRA procedure is complete
-A single NSA UE is able to ping an external source
-UE-to-UE traffic is still in work
-The gNB is crashing regularly and is still in work
MR !1265 : F1 split for 5G
documentation in doc/f1.md
Use new gtp-u for also 4G (no legacy code cleanup, will be done after this MR)
Some various fixes in the existing code when we face issues 4G F1 behavior will also change
MR !1300 : Tx proc optim
new optimizations of NR TX path to bring TX processing below 500us for up to 162 PRBs, 2x2 MIMO
-ldpc-encode and parallelization (L. Thomas)
-resource element mapping (SIMD + loop optimization for symbols with no PTRS or DMRS)
integration of Intel SIMD-based CRC computations, 24-bit A/B, (from github.com/intel/soft-crc)
MR !1374 : oaiue x300
updated CI files after connecting X300+N300 on eNB/OAIUE server
prepared CI files for SA 60MHz BW
MR !1355 : NR RRC harmonization: TDA for DL and UL
Functions to automatically create TDA for DL and UL according to config file and TDD/FDD scenario.
Accordingly, TDA configurations removed from config file.
(startin effort in harmonizing the RRC configuration)
MR !1352 : Build all targets in a single container before creating per-target containers
Builds all per-target containers in three steps
-Base image with all dependencies installed (`ran-base`, was `ran-build`)
-Image with all targets compiled (`ran-build`, did not exist before)
-Copy
MR !1344 : Fix a race condition in UE where PUSCH could not be sent when UE sends PUCCH and PUSCH at the same slot
-This MR fixes the race on ULSCH processing in UE where PUSCH is not sent occasionally when UE sends PUCCH and PUSCH at the same slot.
MR !1368 : \[CI\] improve Ping pass fail checkers
-count # lines with LLL
-ping checker if avgrtt value > target
MR !1369 : \[CI\] git post (note) for scheduled test results
-write a note to MR, when test is completed (valid for 2x2 scheduled tests)
MR !1354 : Fix msg4 segfault
- Fix segmentation fault that happens after an uplink failure timeout (gNB removes the UE) and when UE tries to use the same (old) RNTI.
MR !1347 : nr pdcp: introduce a thread to do pdcp_data_ind
- Before this commit, pdcp_data_ind is done in the realtime PHY/MAC thread, and this may have an impact on realtime performances.
- introduce a new thread to do the job, freeing the realtime PHY/MAC logic.
MR !1360 : Scope telnet fixes
-no need for form.h header in telnet
-enable double buffering in scope
-freeze gNB scope while updating graphs
MR !1363 : CI: a few fixes
-Increased some timeout
-Added missing gNB log file from artifact
MR !1333: Docker: reduce the number of layers in target images.
MR !1345: small fixes for nr rlc
-trigger status report when t-reassembly expires
-reduce "buffer full" log
MR !1336 : Handle Msg3 carrying a DCCH or DTCH message
This MR implements the procedures for gNB to handle a Msg3 carrying a DCCH or DTCH message.
For example, when a new RA happens and the UE is already known by the network.
MR !1337 : Fix build warning
Fix a build warning in develop related with a comparison between ‘X2AP_ResetRequest_IEs__value_PR’ {aka ‘enum X2AP_ResetRequest_IEs__value_PR’} and ‘enum X2AP_Cause_PR’
MR !1330 : nr rlc: speedup buffer status computation
TX and ReTX should be faster now (for RLC AM, UM and TM).
RLC AM Status (function nr_rlc_entity_am.c:status_size()) was not modified, so its CPU usage is the same as before
MR !1276 : NR ACKNACK improvements
This MR improves acknack_scheduling, includes in config file min delay for acknack feedback and fixes bugs in acknack procedures at UE
branch : integration_2021_wk48_d
MR !1308 : Nr add ue improvements-
MR !1310 : parallelization of LDPC decoding on UE side
-fixes the issue of parallelization of LDPC decoding on UE side
MR !1331 : T tracer: trace MAC DL retransmission PDUs in the gnb
-trace MAC DL retransmission PDUs in the gnb
-adapt macpdu2wireshark to deal with them
MR !1306 : fix for harq value in fapi indication according to scf
-We were using harq value in the wrong way. According to SCF it is 0 for pass and 1 for fail
CI fixes :
proper way to address B200 serial number for eNB/gNB
missing library when running uhd_find_devices in container
MR !1318 : Remove ratematching assertion
- Using LOG_E and returning instead of assertion in case of error in rate matching function
MR !1281 : open-nFAPI: Remove carriage returns
- Remove the problematic carriage returns from three nfapi source files.
MR !1203 : addition of AW2S OAIORI interface
- addition of AW2S OAIORI interface, -w AW2SORI target added to build_oai and generation of libthirdparty_transpro.so build rules in CMakelists.txt
MR !1323 : NR RSRP report fix
- Some fixes in handling RSRP report, including print on screen of average RSRP
MR !1324 : NR SA MSG4 rtx bugfix
CI HSS fix : sometimes the HSS is not properly stopped. Making sure it is killed before starting it again
CI Physim logs fix : retrieve the physim logs in the pods and make them available for artifact
CI USRP B200 fix : selecting the B200 by its serial number in the test scenarios
MR !1317 : Change variable types in statistics
When running gNB for a long time and transferring high amount of data, statistics become negative (and later in an arithmetic overflow) because they are too short for such amount of bytes. Example: UE 0: ulsch_total_bytes_scheduled -1804219593, ulsch_total_bytes_received -1804223769
MR !1315 : Using rnti to assign different pucch resource to different UE
This MR is to assign different pucch resource to different UE using rnti
MR !1305 : Fix various issues on ULSCH processing on UE
-add mutex to protect ul_config_pdu against race condition with multiple threads. Otherwise UE will crash as parameter of subsequent thread will be overwritten: Assertion (Nl>0) failed!In nr_get_E() openairinterface5g/openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c:47
-Fix a logical error that sends obsolete buffer erroneously on UL and causes crash in gNB. In nr_process_mac_pdu: residual UL MAC PDU in 736.19 with length < 0!, pdu_len -69
-Fix a logical error that if FAPI_NR_UL_CONFIG_TYPE_PUSCH pdu is not of index 0 in ul_config->ul_config_list, the packet is not sent out.
MR !1321 : CI automatic un-deployment of RAN containers + fixes
-in main container pipeline, the post section in the docker-hub-push stage was incorrectly placed
-when building images on develop pushes, the ran-build image was not built
-iptables check is correct now (could not detect if in not ACCEPT
-something is wrong, automatic un-deployment of RAN containers
-added a "dummy" undeploy scenario just to be sure.
-4g/5g RF simulation tests may fail due to lost socket on ue container. Repeat in case of failure
ci_bring_test_results_to_dashboard:
-RAN Status and Tests dashboards
cherry pick : nsa conf files, ulsch_max_frame_inactivity = 1;
-to reduce ping time
MR !1307: WIP: [CI] real time stats and monitoring update
-MR !1280 (closed) : MAC statistics in separate thread
-log X1AP-PDU messages for eNB
-update real time stats collection (from stats logs file instead of stdout)
-update runtime monitoring (conf file, pages)
MR !1301: Fix for blocked process in FR2
MR !1312: CI: adding NSA-B200 sanity check pipeline to automatic regression test-suite
-Validate that all required routes are present
-Copy the image from a "build" server to a "test" server
-fixes for the log collection on the CoreNetwork components
MR !1282 : Add MCS from HARQ BLER
-Estimates correct MCS using EMA, kept between target thresholds dl_bler_target_upper and dl_bler_target_lower (conf options) for 1st retx and below dl_rd2_bler_threshold for 2nd retx
-Maximum MCS configurable
-on 3rd retx, reduce MCS by 5
Other commits in the integration branch:
-push DL traffic to 60Mb
-solve long ping time in SA
MR !1279 : Improvements to support other NR bands
Minor improvements and small bug fixes to support other MR bands
MR !1294 : code cleanup, no feature
Remove legacy code, not used and not usable anymore and fix a issue in PDCP NETLINK initialization
MR !1298 : 5G NR timing fixes
MR !1295 : NR UE PDCCH fixes
Removing some hardcoding and bugs in dci detection at UE, mostly for SIB1 and RA
MR !1303 : fix bug in GNB MAC nr_store_dlsch_buffer() to handle multipe UEs correctly.
MR !1233 : NR gNB MAC scheduler BWP start issue fix
This branch fix incorrect use of BWP start at gNB MAC scheduler (in DLSCH and ULSCH allocation and VRB map filling)
MR !1232 : SR/BSR support for NR UE
-added the support of scheduling request in NR UE.
-added the support of regular, periodic and padding BSR in NR UE.
-removed memcpy call in nr_ue_get_sdu().
-called mac_rlc_status_ind only for existing bearers.
-Moved NR_LONG_BSR_TABLE and NR_SHORT_BSR_TABLE to nr_mac_common.c
MR !1239 : NR SDAP gNB - Transparent Mode
MR !1257 : Nr ldpc cuda softmodem
Move ldpc decoder accelerated in cuda GPU in a shared lib compatible with oai loader.
libldpc_cuda.so is built as a ldpctest, nr-sotmodem, nr-uesoftmoden and ocp-gnb targets when cuda development environment is detected.
At runtime --loader.ldcp.shlibversion _cuda option can be used to select the cuda accelerated ldcp library, except for the ldpctest exec where the -G option has been preserved. Also start implementing an opencl version of the ldpc decoder, starting "translating" the cuda version.
MR !1296 : Apply the NSA t_Reordering value also for SA
Apply the NSA t_Reordering value also for SA to improve the iperf downlink bitrate. The same iperf performance is expected at both NSA and SA
MR !1293 : hotfix SEGV and divide by 0
With latest develop, two bugs appear as long as we don't hide them with gcc -O2 optimisations
MR !1259 : gNB nrUE SA: improve security
Improves security and addition security in nrUE side
MR !1260 : NR CSET0 BWP Start fixes
Fixes a bug in selecting the start of BWP for Coreset0
Use Magma MME in CI tests
Update NSA 2x2 test
See merge request oai/openairinterface5g!1291
MR !1277 : fixes for nr_set_pdsch_semi_static
MR !1225 : Cleanup and first step to enhance cpu measurments
MR !1278 : NR cleanup separation macphy
MR !1289 : Nr dlsch retransmission fix pucch allocation
MR !1270 : Removing hardcoded value of min channel bw for type0 pdcch
MR !1283 : Bugfix simultaneous RACH with multiple UEs
cherry-picks :
* MAC statistics in separate thread
* CI conf files update
MR !1272 : \[DOC\] NR feature set update
MR !1244 : \[DOC\] Update SA tutorial
MR !1269 : \[CI\] dashboard creds and executor change
MR !1262 : \[CI\] jenkins pipe to write test results to mysql
MR !1250 : NR_NSA_no_msg3_retransmission
MR !1264 : NR_UE_IF_FREQ (IF frequency command line option at OAI UE)
MR !1252 : Bugfix nr rlc w36
Fix a bug about segmentation present in both NR RLC AM and NR RLC UM.
MR !1253 : minor: T tracer: be more verbose for DLSCH DCI
MR !1254 : fix for pointa computation in sib1
Fix computation of pointA in SIB1
MR !1217 : fix-physim-run-script-on-cluster
oai-nr-dlsim may seem fine but in fact, test21 may or may not be executed.
On some run example, we do not have finished message on nr-dlsim pod.
MR !1255 : Attempt to fix nr-dlsim Test 21 (4x4 MIMO, 2 Layers)
MR !1245: [CI] Improve Iperf packet loss mismatch detection
-improve the Iperf packet loss detection and flagging when pl target (from xml) is below the test result
MR !1246: patch: remove call to end_configmodule
- full fix that set properly PARAMFLAG_NOFREE on relevant parameters
MR !1235: Nr msg4 retransmission
-Retransmission of msg4
-Some reworking in UE harq DLSCH processing
MR !1214: NR UE SA
-SIB1 detection part of initial sync at UE
-Removing a lot of hard-coding in SA procedures
-SSB start subcarrier from command line at UE
MR !1243: Nr skip mac pdu processing when nack
-Skipping processing DLSCH MAC PDU at OAI UE when NACK
MR !1229: fix(nr-ue): apply ip rules/route
-Also added 4G RF sim tests
MR !1081 : Prb based channel estimation
-An option for using average channel estimates over 1 prb is introduced in DLSCH and ULSCH.
This improved BLER performance for MCS 28 when prbs are allocated across DC.
MR !1231 : Nr msg3 retransmission
-Implement re-transmission of MSG3 gNB and UE
-Fixes content resolution timer at UE
MR !1236 : nr: add T trace for msg4 (rrc setup)
MR 1170 : 5G nFAPI Improvements
- Bugfixes in packing/unpacking
- Adds uplink indication functionality
- Changes the nFAPI system architecture to account for architecture changes in the develop branch
- Adds nFAPI system documentation
- Removes hardcodings
MR 1222 : Update RRC ASN1 file to version 16.4.1
MR 1223 : Fixes to NR UE MAC PDU generation
- included MAC CE sub-PDUs size in the computation of RLC data to transmit this fixes the error with residual mac pdu appearing at gNB side when transmitting higher amount of data
- got rid of the nr_generate_ulsch_pdu and moved the relevant UL-SCH MAC PDU generation procedure within the nr_ue_get_sdu and nr_ue_get_rach
- reduced memcpy calls and unnecessary memory allocations
- fetching RLC data and SDU size from the mac_rlc_data_req, removed the call to mac_rlc_get_buffer_occupancy_ind
- introduced a new function to generate the MAC CEs sub-PDUs
- removed unnecessary function input parameters
- minor fixes and cleanup
- enhanced logging
MR 1227 : removed duplicate structure, changed 'x' to 'r' and 'y' to 'i'
MR !1206 : nr_ue_remove_high_speed_flag
This flag is always set to 1,
With multiple DMRS symbols configuration, very recent DMRS containing symbol shall be for channel estimation.
MR !1205 : fix-lte-ue-modem-in-docker-container
We bind the socket to any_addr (instead of localhost), so the commands to the UE can come also from a remote machine
MR !1178 : NR_CSIRS_tomerge
Implementation of CSI RS transmission at gNB
MR !1211 : develop-NSA_SA_fixes
Small fixes for NSA and SA
MR !1197 : dongzhanyi-zte-develop1
function nr_generate_dci_top and nr_generate_dci has the frame_parms parameter, whose type is the structure NR_DL_FRAME_PARMS.
The better way is to pass the parameter as a pointer.
MR !1176 : NR_phytest_bugfixes
This fixes a bug for configurations with less than 50 PRBs in phy-test mode.
MR !1142 : nr-dl-mimo-2layer
MR !1188 : NR_gNB_initial_MIB_fix
This MR fixes a bug for which the gNB would send an empty MIB in the first frames of execution. This is because MIB is generated every 8 frames but the first MIB wouldn't be generated before frame 8 at the beginning of each run.
MR !1184 : x2_handle_sctp_shutdown
Avoid eNB exiting after gNB tries to reconnect over X2 for NSA
MR !1180: \[CI\] nsa traces
-NSA test and pipeline update for UE-module
-improve traces and log collection (pcap, QLog, stats)
MR !1126: bugfix-nr-t-reordering
-deal with "infinity" case for t-reordering
-some small fixes (one bug i pdcp, one log set to LOG_E in rlc)
MR !1168: nr-pdcp-small-bugfixes
-better nettle version detection
-bad HFN computation at PDU reception
MR !1161 : Improvements on CCE-to-REG mapping and interleaver
- Improvements on CCE-to-REG mapping and interleaver to support coresets with more than 1 symbol duration
MR !1153 : Nr cleanup pucch resources
- Removing unused PUCCH resources and accordingly increasing the PUCCH symbol allocation by 1 unit (now 13 symbols in regular slot)
MR !1162 : [CI] nsa and benetel pipelines with quectel
-adapt iperf routines for quectel
-change quectel NIC name
-new NSA test markers for eNB and gNB
-several bugfixes (CI python)
MR !1164 : fix compile
- Fix several compilation issues nr-ittisim, uescope, telnetsrv,
- fixed also the F1AP asn1c recompilation
- some compilation warnings struct members "Status" is a problem as long as we use a Xwindow include
MR !1154 : implementation of handling csi and harq in the same pucch2
- Implementation of multiplexing CSI report and ACKs in the same PUCCH (format 2)
MR !1158 : Fix nr_ulsim
- fix call nr_ue_pusch_common_procedures() in nr_ulsim. This means there was no actual PUSCH transmission and all LLR were 0
MR !1159 : physim-deploy-handle-error-cases
-When failing, physim test on openshift cluster is not properly creating HTML report
-Removing trailing / in xxx.git/
-Increased timeout of git checkout -f calls
MR !1165 : [CI] fixing test retry for module UE
- CI hotfix for module UE ip addresses mgt
MR !1166 : [CI] NSA uplink + benetel longrun
-fix moduleUE UL iperf implem
-add UL test for benetel
-xml file cleaning
-new benetel long run test
MR !1028 : oairu
-standalone RRU executable for quick building on simple platforms (no building of L1/L2 procedures)
-small changes for improving eNB in outdoor deployment scenarios - power control loop, bugfixes, gathering of statistics (L1,MAC,PDCP,RRC), UL measurement procedures, 2/4 antenna reception testing for LTE eNB
-x300/n300 eNB testing and minor improvements
-level shifting for x300/n300
-minimizing L1 variables in MAC
-removal of RC in RU code sections, minimizing use of RC in L1 code sections
MR !1141 : nr-dmrs-fixes
-NR fixes, identified by UXM tests
MR !1156 : bugfix_gnb_rt_stats_html
-bugfix for 5G NR phy test: the rt report in html shall be displayed only for gNB
MR !1155 : fix-physim-deploy
-The pexpect method has echo issues and is not reliable when we do the polling.
-added a few wait states when pushing the image to the cluster.
-first step also for giving up on remote hosts credentials as the used method implies SSH key authentication.
MR !1146: ci_quectel_support
-Support for quectel module as UE for NSA and Benetel tests
-First step for UE infra / testbench infra as code
MR !1145 NR_FR2_initsync_fixes
-bug fixes that caused failure in PBCH detection after initial sync in FR2
MR !1100 NR_scheduling_request
-per-UE PUCCH F0 resource, CSI, Preamble
-Scheduling Request
-MAC scheduler fixes
MR !1150 rh_ci_phy_test_improve
-beautified HTML report for 5G NR phy test
MR !1113 hack-exit-gnb-when-no-enb-nsa
-Exit gNB if connection to eNB failed - to be modified if needed. We may want to try to connect over and over again until we succeed but the modifications to the code to get this behavior are complex
MR #1148 : Fix coreset dmrs idx
-- Fix coreset dmrs idx for coresets with more than 1 symbol duration
MR #1139 : bugfix for sib1 in case of ssb different from 0
-- solving a small bug in handling sib1 relative to ssb other than 0
MR #1136 : CI: Migration of the physical-simulators to OpenShift
-- switch to a parallel pod deployment on the OpenShift Cluster
-- Huge gain in time : 1h30m down to 25 minutes
MR #1134 : Docker improvements 2021 april
-- updated the LTE-UE image generation.
* Proper configuration file in nfapi case
* Proper entrypoint
MR #1131 : Removing deprecated dl and ul_bwp_dedicated in config request at UE
MR #1091 : Ue pdsch pusch parallel
-- The UE code for now is unfit to process more than 1 slot in parallel.
This is why the PUCCH signal is not transmitted most of the time.
Hence, the following changes are made:
* Process only one slot at a time. Previously it was 2 slots in parallel.
* Now we do parallelization with the slot i.e., PUSCH and PDSCH are processed in parallel.
* Option for the UE to go back to sync mode instead of stopping if it loses sync with gNB. Command line parameter --non-stop enables it.
* New feature: Included a mechanism to detect false DCIs.
MR #1147 : benetel conf files fix
MR !1079 / MR !1108:
1. Read slots from config file and schedules all slots *except* for slots 0 and 10. This is not a problem, since currently we cannot allocate more than six HARQ feedbacks in a slot, but we might have up to 7 with current configuration
2. phytest mode is configurable. From `nr-softmodem -h`:
-m: Set the downlink MCS for PHYTEST mode
-t: Set the uplink MCS for PHYTEST mode
-M: Set the downlink banwdwidth (in PRBs) for PHYTEST mode
-T: Set the uplink banwdwidth (in PRBs) for PHYTEST mode
-D: Bitmap for DLSCH slots (slot 0 starts at LSB)
-U: Bitmap for ULSCH slots (slot 0 starts at LSB)
3. Scheduler prints more information: UE PHR, PUCCH SNR, PUSCH SNR, RSSI
4. The scheduler learned to scheduler DLSCH/ULSCH in mixed slots (if the time domain allocation matches the mixed slot)
5. The scheduler expects
* PDSCH Time Domain allocation index 0 to be the DL slot allocation
* PDSCH TDA index 1 for Mixed DL slot
* PUSCH TDA index 0 for UL slot
* PUSCH TDA index 1 for Mixed UL slot
* PUSCH TDA index 2 for Msg.3
6. Some more cleanup, e.g., separate PDSCH/PUSCH data structures into "semi-static" data (e.g., TDA allocation to use, since it changes seldomly) and "dynamic" data (e.g., RB allocation per slot, which changes every slot)
MR !1137 : Benetel config files fix
MR !1114 : sanitize v1
-bugs or dirty code fixed
-add first version of a rf board calibration tool, not finished
MR !1094 : sim channels
Channel simulation:
-command mode: to change noise, path loss, model (AWGN, RICE, ...) parameters channel simulation
-channels separation: each channel can have a different model (for HO test for example)
-a new build option --sanitize to compile all OAI with gcc --sanitize=address
MR !1034 : new gtpu
-New GTPU implementation
MR !1101 : develop-SA-CBRA
-Implementation of Contention Based Random Access procedures for 5G-NR Initial Access in SA mode (including contributions from BUPT and Fujitsu)
MR !1111 : fix x2 without gnb
-fix x2 without gnb (that is: the eNB is running without gNB, then we must not switch the UE to NR)
-exit gNB if eNB crashes (and exit eNB if gNB crashes)
MR !1102 : nr rlc: bugfix: fix NACK with range
We do some sanity checks for incoming rlc control packets. One of them is to check that so_start is not > so_end when present.
But when 'range' is present and bigger than 1 it means that so_start refers to one PDU and so_end to another one. So we may well have so_start > so_end.
This MR fixes that and reorganizes a bit the code to do the check before processing and rejecting the PDU if the values are not correct. (Before this commit we were NACKing the whole PDUs if so_start > so_end.)
MR !1096 : build_oai: Add --sanitize-address option
-pass the -fsanitize=address option to the compiler which enables run-time checks for some kinds of memory mismanagement
MR !1085 : Nr mac ssb
-MAC scheduling of multiple SSBs
-Symbol level occupation of VRB map for SSBs
-Multi SSB SIB1 scheduling
MR !1097 : NR_PRACH: nr_du\[\] buffer not filled in High Speed case for both gNB and nrUE
Issue: TC nr_prachsim failed with High Speed(-H) enabled.
While generating NR PRACH for High Speed case : Array nr_du\[\] was not filled for both gNB and nrUE. Added function nr_fill_du() to resolve the issue.
MR !1107 : Small bugfixes for 5G NR
MR !1092: Nr pdcp nia2 integrity
This code has not been tested with a COTS UE. We need SRB1/2 (so we need SA) to test.
The activation of security and integrity for SRB1 will need more code (new functions) because it happens after some time, not at creation time of the PDCP entity and there is no way to do this with current code.
MR !1075: Fft bench hotfix
Simple fix to make the FFT testbench compile and run on current develop.
MR !1083: NR power measurement fixes
-MR !1052 : Nr fapi beamindex ssb ro
This branch completes RA procedure for FR2 and includes improvements for beam index communication through FAPI interface.
-fix_rb_corruption:
A memcpy() introduced to optimize for the case of no precoding corrupted RBs which are not allocated to PDSCH in the common txdataF array.
So instead, fall back to memcpy() for each PDSCH RB.
-benetel configuration files update
MR !1037: 5G NR DL MIMO
MR !1089: Fixes two issues that we encountered with the new Quectel modules (RM500Q-GL)
-make LTE RRC buffers large enough
-fix initial{D,U}LBWPlocationAndBandwidth in NR config file so that all accept it
MR !1071 : rohan_ulsim2RxFix
-Support added for 2RX antennas case in ulsim
-fixed indexing issue in gNB RX chain
MR !1086 : fix-nr-pdcp-timer
-The discard timer (set to infinity) is used by the PDCP layer to discard packets that were not transmitted to RLC after some time.
MR !995 : NR_MAC_TCI_UCI_GlobalEdge
TCI:
-Activation of PDSCH TCI states, Activation of PDCCH TCI state
-Construction of the codepoint, Updating nFAPI DCI1_1 (tci_field)
-SSB Beam switching on basis of CSI MeasReport(SSB RSRP)
-Added get_measured_rsrp and get_diff_rsrp API’s to get SSB RSRP’s.
UCI:
-Bit length calculation for the scheduled UCI Reporting for CSI-RS and SSB
-Extraction of received CSI Report (L1-RSRP) when according to the calculated bit lengths and processing it.
MR !1082 : NR_10MHz
-Support of 10MHz BW for 5G NR
MR !1013 : ptrs_rrc_config
-Remove hardcoding of DL and UL PTRS parameters at gNB and NR UE
MR !1054 : gNB_multi-threading_rework
-Replacing the existing multi-threading pipeline with threadPool library, simpler and more robust
-Updated dlsim to print stats to matlab file.
-Small fix for UE Ulsch coding.
MR !1063 : T_tracer__add_gnb_tracer
Minimalist gnb tracer to trace (for the moment) rxdataF when some decoding for PUCCH or PUSCH has been done
MR !1070 : nr_pdcp_improvements
Implement data transfer (38.331 5.2): - transmit operation (in nr_pdcp_entity_recv_sdu) - receive operation (in nr_pdcp_entity_recv_pdu) - t-Reordering expiration
MR !1076 : PBCHNRTCFIX
Issue Details: If bchPayload is changed to non-zero value, then the test case used to fail.
Solution: While final check against UE decoded bchpayload and input bchpayload, the AND operation with 0xff is missing along with RIGHT SHIFT operation for input bchpayload.
MR !973 : s1_subnormal
LTE update in S1 functions from Fujitsu.
-NNSF
-S1AP auto recovery.
-Handling unexpected messages.
-Fix memory leak.
MR !1048 : develop_SA_RA
-Draft and initial trigger of RA procedures upon SIB1 reception.
-Improvements on SA SIB1 reception.
-Get Msg3 from RRC to MAC layer (this fixes random Msg3).
-Fix Tables 7.4.1.1.2-1/2 from 38.211.
MR1029 : Benetel driver update
This MR fixes an issue with the driver for the 4G Benetel RRUs.
Power levels on the 5G side were adapted to avoid saturation of the signals.
5G performance is now the same as with USRP.
Support for 2 antennas for both 4G and 5G was added
MR1062 : fixing the RE offset for each Rx antenna in pusch channel estimation
MR1046 : Add support for NR UL SC-FDMA up to 100 MHz
MR1053Nr : pdcp nea2 security
MR1049 : improve rfsim
-Fix a regression
Earlier parameter reading was moved to an external thread,
Eventually the check at the end of the main was too early,
Declaration of some extra parameters are now on command line
-Enhancement:
use the rfsim as a server on UE side, so we can connect two xNB to one UE
-Simplification:
remove rfsim flags that have been made for convergence with replay function in usrp driver, but this is useless as they changed their code
-Fix a bug in ubuntu 20.04 (now the code is ready in whole OAI)
MR1056 : Bugfix: NR BSR calculation
Fixes a bug in the scheduler for BSR calculation.
Before, we might wrongly track the BSR of a UE and not schedule it anymore although it has data.
Should be fixed now and improve UL throughput.
MR963 : Nr mac multi rach global edge
-Handling of Multiple Users triggering RACH request in different RACH Occasions in same slot
-Providing Random Access Response according to RACH request
MR978 :
We have incorporated 5G NR nFAPI into the develop branch
P5 and P7 interfaces for NR have been implemented.
With this MR, downlink transmission through nFAPI will be possible.
We have also made sure that 4G nFAPI can be used from within the develop branch.
MR1006 : itti enhancement
-new feature: creates itti queue during runtime
-modified itti message instance
MR1012 : 5G NR: UL transform precoding (SC-FDMA)
MR1022 : Wireshark t hack ueid
MR997 : LTE uplink improvement
-LTE update about uplink performance improvement and some bug fixes from Fujitsu.
-Fix uplink calculation error in SCD and PHY layer.
-Add interference calculation for PUSCH.
-Update TPC control.
-Fix nFAPI hang-up
-Fix DRB is non active after Re-establishment.
-Msg3 PHICH problem.
-Add statistical logs.
MR1030 : CI RHEL container update
-CI adaptation to build the shared and target images on asterix and obelix Python framework
MR1023 : ci ue parallel
-Enables OAI UE parallelization in CI tests (where applicable)
If we NACK without SOstart/SOend then the other end of the RLC channel will consider all the bytes as NACKed and will have to resend them all.
If another status is then reported before all the bytes are sent, and because we don't use SOstart/SOend this status will NACK all the bytes again, then all the bytes are to be sent again.
And the cycle repeats. It will end with a max retx reached (which triggers RLF, Radio Link Failure).
MR1010 : NR UE: Fix for error message - no active DLSCH
- Fixes for the following error message at UE: [PHY] [UE][FATAL] nr_slot_rx 1: no active DLSCH
MR994 : Cleanup softmodem main
- Introduces --dlsch-parallel command line option to set the number of threads for dlsch decoding. If set to 0 (default) no parallelization.
- Some cleanup in tracing and in nr-uesoftmodem.c data.
MR999 : NR FR2 RA
- Temporary Fix of RA procedure for FR2 (both gNB and UE)
- Fixes in gold sequence initialization at UE
- Moves 2nd downlink to slot 3 instead of 2 to avoid clash with UL DCI (only 1 candidate per slot in FR2 currently)
MR988 : SIB1
Initial implementation of SIB1
MR991: Remove hack in LTE PDCP for noS1 mode
- Removes a hack which was used when LTE PDCP was used for NR in noS1 mode
MR993: UL and DL fixes LDPC short codewords
- Fix UL & DL LDPC decoding for short LDPC code, e.g. Z_c is not multiple of 8
- Fix DLSCH data transmission with multiple DMRS symbols per slot
- small TA fixes on OAI 5G NR UE
- Implemented CQI measurement at NR UE
- NR UE cleanup
MR1000: doc: fix build directory in BASIC_SIM.md
MR960: 256 QAM demodulation routines
- Added functions for demodulation of 256 QAM signals.
- Added a command line flag to enable mcs table entry in PDSCH-Config in RRC to use 2nd MCS table for PDSCH.
- Added an option for using 256 QAM mcs table in nr_dlsim.
MR989: Docker and Deployment improvements (CI)
- Image generation for eNB --> template for configuration files and dedicated entrypoint in Ubuntu
- Docker-compose-based EPC deploy
- Traffic test fully validated using the `trf-gen` container
- Flexran-rtc support when deployed in a container (Not fully done for the X2 Handover part)
- Added docker-compose-based eNB deployment
- Retrieve logs for such eNB deploymnent
- Functional and log update of nsa fr1 test but valid for gNB terminate also (enhanced ping stats and gNB markers)
MR992: Fix data transmission in "do-ra" mode
- UL and DL Traffic works now in do-ra mode, but there are still some PUCCH issues remaining. These issues are harming the acknowledgement of DL packets, and thus leading to unnecessary retransmissions.
The relevant warnings at UE are:
`PUCCH Invalid pucch resource indicator: at line 1082 in function select_pucch_resource of file openair1/SCHED_NR_UE/pucch_uci_ue_nr.c`
and
`PUCCH Error for number of bits for acknowledgment : at line 909 in function get_downlink_ack of file openair1/SCHED_NR_UE/pucch_uci_ue_nr.c`
Note: UE needs rbconfig.raw and reconfig.raw files from the *currently* running gNB, as the C-RNTI is random and different for each run.
MR969: Develop oriecpriupdates
Makes IF5 functionality compatible with ECPRI user-plane.
Control-plane functionality for supporting third-party RRUs : provides an interface converting OAI-native RF parameters, a subset of LTE framing parameters, and RF streaming activation/deactivation to a wrapper (libthirdparty_transpro.so) which uses the proprietary interface of the RRU.
This branch was tested with a commercial eCPRI RRU from AW2S.
MR980: Nr ul scheduler basis
- cleanup of UL scheduler, and add interface preprocessor-postprocessor (in `NR_UE_sched_ctrl_t`)
- Postprocessor can (almost) handle multiple UEs. Preprocessor will follow soon (proportional fair scheduler)
- Preprocessor for phytest (always schedule 50 RBs due to OAI UE limitations) and real UE (as many resources as possible)
- Internal structures have been updated: the `UL_tti_req` structure became an array (as `UL_tti_req_ahead`) so that we can schedule in advance and mark resources as used. Before, we would keep the corresponding nfapi message structure per UE, which could get messy when we have many UEs.
There are no functional changes (UL/DL performance is the same).
MR987: Nr phy mac if multi ue
- Handles multiple UEs in `NR_IF_interface.c`
- Some minor clean up
MR979: Pusch decoder threads parameter
- Added a config file parameter for specifying the number of threads to be used for PUSCH decoding.
MR982: nr pdcp: use pdcp config
-There was a problem with SN size. It was hardcoded to 12 bits (so max sn = 4095) but we configure the UE with 18 bits.
Get the correct value from pdcp_Config.
- Store also discard_timer and t_reordering that will be used later by a proper NR PDCP layer
MR984: NR FR2 SSB
- several fixes mainly concerning FR2 synchronization and RA both at gNB and UE
- SSB RRC signaling for FR2
- Coreset RRC for FR2
- SSB detection in FR2 for SSB index > 15
- Adjust sync function issue
- Fix for scheduling of MSG2 (issue with sl_ahead)
MR968: Bugfix nr ldpc size typo
- fix the copy of the decoded data bytes at the end of the processing of an LDPC segment
MR962: Remove x2 gnb hardcoding
- Removes hardcoding of some x2 configuration parameters used in ENDC setup request message at gNB side
MR949: rlc v2: change time keeping
- RLC has timers. We need to keep track of time.
We introduce rlc_tick() and call it in eNB_dlsch_ulsch_scheduler, which is called every subframe, both in FDD and TDD.
MR945 : nr prach fr2
- Introduction of the PRACH frontend for FR2 (120kHz SCS, 32 and 66 PRB).
- Tested with nr_prachsim and testcases added to test_case_list.xml also included some fixes for FR1,
when prach occasion > 0 (small difference in Ncp)
MR950 : DL and UL PTRS for 5G NR
MR971 : Correct NDI + Minor MAC subPDU handling improvements
Fixes the issue : Ping in develop was unusually high (70+ms). The issue was that TA was scheduled in the second slot (of the two we currently schedule), but NDI was toggled for the first one.
Other improvements:
- Correctly put padding MAC subPDU
- Only use subPDU DLSCH long header if length >= 256B
- Calculate TBS in DL pre-processor considering header and TA CE overhead.
- Improve some of the logging (LOG_D)
- re-enable TA
MR970 : uci gnb mac functions file
- Moved gNB MAC UCI related functions in a new file
MR972 : Bugfix nr rate matching assertion
- Fixes the assertion happening in rate matching of pdsch during iperf test.
MR975 : File openning in rrc_gNB_internal
- Only allow file opening in rrc_gNB-internal.c in phytest mode
MR977 : NR UE DCI sanity checks and fixes
These changes resolve a few stability issues and errors in NR UE
- Added sanity check for pucch_resource_indicator received in DL DCI, which resolves SEGV in select_pucch_resource() and check_pucch_format()
- Additional sanity checks included to catch false or erroneous DCI received
- Wrong MCS table calculation and error in accessing ul_config_request at UE resolved
MR932 : Nr sa ngap rrc wk42
- Initial implementation of NGAP and RRC extensions for SA
MR956 : Correct use of ssb_position bitmaps
MR958 : 5G NR Downlink DMRS Type 2
- Implementation of 5G NR Downlink DMRS type 2 (generation on gNB side, channel estimation with linear interpolation in frequency domain on UE side), needed for MIMO
MR961 : 5G NR UE TTI cleanup
- Remove current_thread_id array, nr_tti_rx, nr_tti_tx, subframe_rx and subframe_tx
MR965 : fix a segdev
MR939 : Nr rlc am bugfix w44
- bugfix
MR948 : nr: rlc: hotfix - forgot to store frame and subfram
- minor bugfix
MR942 : Feature/make s1 mme port configurable
- This patch adds an optional "port" option to set another sctp port than 36412
MR959 : minor: remove a CPPCHECK error for NR RLC
- remove a CPPCHECK error (not a real error) for NR RLC
MR890 : moving the OFDM phase rotation from RU to DU
Moves the recently introduced phase rotations from RU to DU.
This is important for setups that do not use the monolithic mode (like Benetel RRU).
MR944 : fix pdsch low prb
Fix for DLSCH decoding for low TBS and for ULSCH.
In the UE, DLSCH decoding stats are printed periodically for every 64 frames.
DLSCH decoding is skipped if UE receives retransmission for successfully decoded CW.
MR946 : S1ap bugfix rab setup
Fix a bug in S1AP
MR951 : CI NSA FR1 logging and reporting update
Enhancement of gNB html + log report showing (RAPROC PUSCH check, dlsch and ulsch statistics)
M954 : Mac fixes wk45 2
Hotfix: preserves "low" delay (20-30ms) and correct HARQ retransmissions by disabling timing advance (TA)
Reduces log level, compiler warning, correct TA condition
MR936: nr_fdd_if_fix
- Add support for 5G NR FDD bands and introduce configurable IF frequencies (esp. on nrUE) with configurable UL-DL-frequency offset.
MR940: dongzhanyi-zte-develop2
- Solved the problem that UE UL LDPC code can only process data within 8 code blocks (the UE UL LDPC code could only process data within 8 code blocks. If there were more than 8 code blocks, an error would occur)
MR943: NR_UE_MAC_scheduler
- Dynamic calculation of slot for PUSCH transmission based on slot offset k2. PUSCH slot is no longer hard-coded to 8.
- Support for multiple UL allocations in a frame by supporting a ul_config_request per UL slot.
- Support for multiple PDUs per slot
- Fixes for a few UE crashes/assertion failures due to invalid DCI received
- UE scheduler code clean-up
Integration 2020 wk45 (2) comprising:
MR937:Nr dl sched fixes
-restore old phytest scheduler behavior
-correct TA scheduling
-correct SSB
-shorten interface of `nr_fill_nfapi_dl_pdu()`
-Track RB allocation on symbol basis (bitmap)
-add a `remove_nr_ue_list()`, could be used instead of MR !934
MR910:5G SA NAS messages
- 5G SA nass messages and a simple unitary test code
MR927:Nr rrc configuration fr2
- introduces some bug fixes for FR2 that might also have an impact on FR1.
MR902 Nr mac ssb ro ue idcc
- Construction of SSB-RO mapping table on the UE
- RO selection based on SSB index
- RACH preamble selection based on SSB index in a selected RO
- RA-RNTI calculation
MR928 nr: add MAC PDU traces for wireshark
- The T tracer macpdu2wireshark has been modified to handle the new traces. The usage is the same as for LTE.
MR929 RA fixes for NR UE
MR938 CI: Parse UE TUN interface correctly in S1 mode
- The TUN interface configuration is changed to use program "ip" only.
- The CI script parsing is changed accordingly: the pipeline will recognize the attempt to bring up the interface of the first UE.
MR933 nr rlc: bugfix
- ret.next was not set in a particular case
Integration 2020 wk44
MR923 : Fixes tun
TUN-interface related changes
MR925 : bugfix: fix frequencies in nr_bandtable
The array nr_bandtable has then been reviewed fully and all the values that were wrong have been changed. The check of correctness was done using the website https://www.sqimway.com/nr_band.php
MR931 : Finalize oaicn integration (CI)
In addition, the "known unstable scenarios" are highlighted in the CI HTML reports.
MR917 : NR CSI reporting
This is a new feature
Integration 2020 wk42 (2)
MR921 : Hotfix for DL DCI issue in UE
Fixing a bug from last MR.
Fix in nr_dlsim that prevents reporting false 'PDSCH ok' message
MR915 : Fix to avoid RRC->X2AP ticking every msec when x2ap task is not enabled
The aim of itti RRC_SUBFRAME_PROCESS message (MAC->RRC) is to trigger an itti X2AP_SUBFRAME_PROCESS message (RRC->X2AP)
This change avoids creating RRC_SUBFRAME_PROCESS message if x2ap task is not enabled
Integration 2020 wk40 comprises the following udpates:
MR893 ULSCH decode mthread:
- Enabled parallelization of ULSCH segments decoding, deinterleaving and rx rate matching.
MR896 Nsa remove band hardcodings:
- A missing commit from wk39, just a log change
MR901 NR UE DCI improvements:
- Handling of DCI formats 0_0 and 0_1, including removing hard-coding and scheduling PUSCH with DCI parameters
- Blind decoding of DCIs based on size and format indicator
- Fix for segmentation fault during ULSCH encoding
MR895 support of RA procedure by implementing Msg3 on UE
MR908 NR DL scheduler improvements:
Preliminary work on the DL scheduler
- cleanup of DL scheduler, add interface preprocessor-postprocessor (`NR_UE_sched_ctrl_t`)
- postprocessor can handle multiple UEs. Preprocessor will follow soon (proportional fair scheduler)
- No MAC UE Context creation before end of RA (Msg 3)
These updates do not change anything performance wise (no additional scheduled slots, etc).
This MR also reduces gNB log.
MR 896 : Nsa remove band hardcodings
Removes hardcodings of EUTRA and NR bands in UE_Capability_Enquiry and NR_UE Capability_Enquiry messages, providing them from the eNB config file and gNB over X2 respectively. Moreover, the SSB Absolute frequency of the gNB is now provided by the eNB configuration file (instead of being hardcoded at rrc_eNB.c)
MR903 : pusch ta update
Update of PUSCH Timing advance
MR 900 : improve x2/rrc for ENDC
This MR introduces several enhancements in X2AP and RRC to deal with ENDC.
The main goal is to deal with UE's on/off and with various errors.
Includes :
- DC prep and DC overall X2 timers
- X2 messages for UE release and DC timers' timeout