usrp constant and slow derive timestamp
Sample write reorder function doesn't handle properly the clock shift.
It keeps the same time origin forever, so, if the clock sifts in one direction,
we finish to reach the maximum time shift that was designed for slot to slot
maximum shift.
We may also consider if this function is useful: gNB and UE currently ensure Tx
in order because there are other issues above if we let Tx preparation run out
of order in separate threads
Closes#893
- Refactor SCTP Association Response Handling
- Unified function for both CU-CP and CU-UP handling
- CU-CP: Notifies RRC of E1 connection loss with CU-UP
- CU-UP: Initiates a new SCTP association request to regain E1 connection
- this fix will prevent issue #878 from happening
- Send list of PDU Session Resources to Failed Setup in the (PDU Session
Resource/Initial Context) Setup Response
- depending on different failure scenarios
- e.g. (#878) when No CU-UP is associated and still the CU-CP receives a PDU
Session Setup Request
- add relevant functions to handle NGAP Setup Response messages with failed
list of items
- this is an extra failure handling to make #878 is handled if it ever happens
again
- NGAP Cause Refactoring
- Refactor struct for NGAP cause group and value
- Add extended radio network cause enumeration values
- Refactor redundant code into a new NGAP cause encoding function
- Minor logging, function descriptions improvements
Closes#878
chore(ci): Move to new Jenkins and Openshift Cluster
- Update helm-charts with new node roles
- Add resource definition in physim helm-charts to easily schedule them
on different cluster servers
- Update entitlement creation methodology
- Add namespace for aerial pipeline
Due to HW version differences between the CI RHEL build machine and
the FHI 7.2 test machine (cacofonix), FHI 7.2 test using RHEL image
failed, reporting an 'Illegal Instruction' error.
Integration: `2025.w03`
See merge request oai/openairinterface5g!3206
* !3167 remove calls to clear SIMD registers, that was a historical issue
* !3179 UE statistics improvements
* !3193 Remove spinlock from threadpool task return
* !3195 UE MAC: in phy-test/do-ra, fill TB randomly
* !3201 T tracer: minor fixes for compilation
* !3204 CI: Increase number of test trials for timing tests
* !3034 Delay compensation for PUCCH2
* !3205 Fix calculation of RSSI in pucch_rx.c
Fix calculation of RSSI in pucch_rx.c
Fix two issues with RSSI calculation in PUCCH:
- RSSI was calculated using partial sum instead of average of squared samples.
- There was a missing parentheses pair which causes the RSSI value to underflow.
The proper way to calculate power in dBFS is
let signal_energy = average of squared samples of received signal over resource elements, antennas and symbols under measurement
then:
rssi[dBFS] = -10log10(max_sample^2 / signal_energy),
or (to avoid division):
rssi[dBFS] = -(10log10(max_sample^2) - 10log10(signal_energy))
CI: Increase number of test trials for timing tests
- Increasing a number of test trials aims to reduce variations and
improve reliability of the nr_ulsim and nr_dlsim test results.
- Disable CPU sleep states on the machine when running physims.
- Minor adjustment of timing threshold in 60 MHz phytest.
Delay compensation for PUCCH2
- Implementation of delay compensation for PUCCH2, which minimizes for
exampe logs "reported RSRP index XXX invalid"
- Adding a test to the CI to perform the delay compensation in PUCCH2
- Refactor code to use c16_t data type in PUCCH decoder
Remove spinlock from threadpool task return
The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added.
remove calls to clear SIMD registers, that was a historical issue
This works because gcc/clang replaces the MMX calls by SSE2 automatically.
There are some mm_empty() calls in bad places (places where we don't use
_m64) and it is lacking in places where we still use _m64. Given that
MMX calls are converted to SSE2, there is no problem, and we will remove
remaining _m64 variables.
Fix two issues with RSSI calculation in PUCCH:
- RSSI was calculated using partial sum instead of average of squared samples.
- There was a missing parentheses pair which causes the RSSI value to underflow.
The proper way to calculate power in dBFS is
let signal_energy = average of squared samples of received signal over resource
elements, antennas and symbols under measurement
then:
rssi[dBFS] = -10log10(max_sample^2 / signal_energy),
or (to avoid division):
rssi[dBFS] = -(10log10(max_sample^2) - 10log10(signal_energy))
* this function is used by both CU-CP and CU-UP
* it behaves differently depending on the type of E1 instance:
CU-CP: inform RRC of E1 connection loss with CU-UP
CU-UP: trigger a new SCTP association request by sending an ITTI to the CU-UP task
* after receiving the E1AP register request, the CU-UP will send a new association request to
SCTP until new E1 connection is achieved by sending a TIMER_HAS_EXPIRED message to the CU-UP
task. The function e1apHandleTimer() is basically triggering a new E1 association request
until new E1 connection is achieved
* print SCTP association state in e1ap.c whenever needed
Related to #878
* add function to check whether cu-up is connected
* add functions to send the relevant response messages with the failed list
e.g. to fill PDU Session Resource Failed to Setup items
* set return value of trigger_bearer_setup to bool and handle the
failure by sending setup response messages with list of PDU sessions failed to setup
i.e. send failed list of items when no CU-UP is associated to the CU-CP
note: it considers all PDU Sessions as failed to setup in the considered failure scenarios
* e.g. send a list of failed PDU session resources in the response message to reject
PDU Session Resource Setup in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ
* the Initial Context Setup has a Failure message, but for the considered failure scenario
when no CU-UP is available the current design is just sending a list of failed to setup
items in the Response message
* transfer PDU Session Resource/Initial Context Setup Request NAS PDU to UE
closes#878
* new struct definition including both NGAP cause group and value
* add encoding function, temporarily in ngap_common.c
(in the long term to be place in a enc/dec NGAP library)
* extend Radio Network cause enum values
* add cause member to Setup Failure