LTE networks require accurate, secure, and reliable time services. We will use YateUCN linux server as a network time server with purpose to deliver exact hardware-based Network Time Protocol (NTP) timestamps to eNodeB equipment.
To enable hardware stamping, it needs to be supported by:
- network interface card (NIC)
- kernel
- chrony (client/server for the Network Time Protocol)
To verify if NIC and kernel supports it, apply the command: ethtool -T interface_name
The value “PTP Hardware Clock” (which in this case is “0”) will be used in the /etc/chrony.conf configuration file.
[root@yatebts_core ~]# ethtool -T eth-ran
Time stamping parameters for eth-ran:
Capabilities:
hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE)
software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE)
hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE)
software-receive (SOF_TIMESTAMPING_RX_SOFTWARE)
software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
off (HWTSTAMP_TX_OFF)
on (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
none (HWTSTAMP_FILTER_NONE)
all (HWTSTAMP_FILTER_ALL)
[root@yatebts_core ~]#
Flag | Meaning |
---|---|
SOF_TIMESTAMPING_TX_SOFTWARE | Transmit timestamp generated in kernel driver by NIC clock |
SOF_TIMESTAMPING_RX_SOFTWARE | Receive timestamp generated in kernel driver by NIC clock |
SOF_TIMESTAMPING_TX_HARDWARE | Transmit timestamp generated in hardware by NIC clock |
SOF_TIMESTAMPING_RX_HARDWARE | Receive timestamp generated in hardware by NIC clock |
chrony supports hardware stamping starting from Version 3.0 , chrony3.4-2 is build for Mageia 7.
- We backported it to mga5 and mga6 and you can find it in CORE or RAN repo of your equipment.
[root@CORE ~]# urpmi.addmedia --update YateMageia https://repo.yate.ro/mageia/updates/mga5/x86_64
[root@RAN ~]# urpmi.addmedia --update YateRAN https://repo.yatebts.com/licensed/mga6/x86_64
You can install it with:
urpmi.update Yate;urpmi chrony
Verify the installed version of chrony with the following command:
[root@yatebts_core ~]# rpm -qa chrony
chrony-3.4-2.mga5
[root@yatebts_core ~]#
eNodeB equipment settings (SatSite or LTE LabKit)
- The /etc/chrony.conf configuration file should look like this:
[root@ybts-SatSite ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool pool.ntp.org iburst
# YateUCN server which acts as NTP server
server 10.0.4.1
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
hwtimestamp eth-ran
refclock PHC /dev/ptp0
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
log measurements statistics tracking
[root@ybts-SatSite ~]#
-
Comment the line "pool pool.ntp.org iburst" and insert the following:* Add line: “server IP_of_UCN_server”
[root@ybts-SatSite ~]# head -n 5 /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool pool.ntp.org iburst
# YateUCN servers which act as NTP servers
server 10.0.4.1
[root@ybts-SatSite ~]#
-
Check the NTP sync:
[root@ybts-SatSite ~]# chronyc sourcestats
210 Number of sources = 3
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
PHC0 6 3 80 -2.714 0.011 -253ms 84ns
time.cloudflare.com 17 13 1165 +0.107 2.978 +11us 917us
time-a-g.nist.gov 19 11 21m +0.209 1.069 -1857us 413us
[root@ybts-SatSite ~]#
The optimal value for “Freq Skew” is below 2.
Also, please note that 15 minutes need to pass in order for syncronization to be achieved.