Most Powerful Open Source ERP

Explanation on Amarisoft cpri_delay and Lopcomm RRH delay management

  • Last Update:2023-08-18
  • Version:
  • Language:

Conclusion first:

To manage the delay in Lopcomm RRH, it is supposed to configure:

  • cpri_rx_delay: 25.11,
  • cpri_tx_delay: 14.71,

According to Amarisoft's doc (trx_cpri.pdf)

  • cpri_rx_delay: Delay between TX and RX position in CPRI frame. This should be set to the value of (T2a + T3a - Toffset) provided by the RRH specification.
  • cpri_tx_delay: Advance Start of Frame relative to PPS to compensate for delays in transmit line and RRH. This should be set to T12 + T2a.

Value of Lopcomm RRH:

  • T12 = T34 = 0 (lab condition, ignore delay in the short fiber cables)
  • T2a=14.71us,
  • Ta3=11.01us,
  • Toffset(internal compensation)=0.61us,


  • cpri_rx_delay = T2a + Ta3 - Toffset = 14.71 + 11.01 - 0.61 = 25.11
  • cpri_tx_delay = T12 + T2a = 0 + 14.71 = 14.71


CPRI Specification V7:

Main confusion: Toffset

The main confusion we have is about the value of Toffset. 

In CPRI Specification V7, Toffset = T23 (R2 -> Ra -> R3) = T2a + Ta3:


From Amarisoft documentation, the Toffset is Internal compensation: 

To configure delays and adjust propagation delays to that TX signal is aligned to PPS and RX is aligned to TX, you need to setup cpri_tx_delay and cpri_rx_delay.

cpri_tx_delay is used to align TX signal to PPS.
The CPRI driver uses this value to start sending of hyperframes before its own PPS so that the associated signal reaches antenna at the correct time.
This delay should be set to T12 + T2a

cpri_rx_delay is used to align TX and RX signal and ensure synchronization for TDD.
The CPRI driver use this value to apply an offset to the received signal inside the hyperframes to compensate propagation delay and align RX to TX. When the CPRI driver receives an hyperframe, it uses its HFN/BFN to compute the timestamp of the signal and removes the cpri_rx_delay.
This delay should be set to T2a + T3a - Toffset

The BBU generates the signal to t=0 (Ex: start of a frame).
The signal is put in HFR:0.0 (HFN=0, BFN=0) and is sent to RRU at t=-(T12 + T2a)

HFR:0.0 reaches R2 at t=-T2a
HFR:0.0 reaches antenna at t=0 as expected

The RRU generates HFR:0.0 at t=-T2a + Toffset as it aligns on received HFR:0.0 at t=-T2a
The signal put in HFR:0.0 is the one received -T3a earlier at antenna side.
Which means that HFR:0.0 sent by RRU is filled with signal received at antenna side at t=-T2a + Toffset - T3a