SNTP & DATE_TIME & SERVER ADDRESS configuration and behavior

Dear All,

I'm implementing a SNTP sync over Ethernet and found the following issues:

1- CONFIG_DATE_TIME_AUTO_UPDATE must be disabled to get a NTP time sync scheduling:

void date_time_core_init(void)
{
if (IS_ENABLED(CONFIG_DATE_TIME_AUTO_UPDATE) && IS_ENABLED(CONFIG_LTE_LINK_CONTROL)) {
lte_lc_register_handler(date_time_lte_ind_handler);
}

if (!IS_ENABLED(CONFIG_DATE_TIME_AUTO_UPDATE)) {
date_time_core_schedule_update(false);
}
}

2- date_time_ntp.c module uses a predefined servers and is not related with SNTP config (CONFIG_NET_CONFIG_SNTP_INIT_SERVER)

#define UIO_NTP "ntp.uio.no"
#define GOOGLE_NTP "time.google.com"

#define NTP_PORT 123

static const char * const servers[] = {
UIO_NTP,
GOOGLE_NTP
};

 

00> [00:00:00.395,538] <inf> eth_w5500: W5500 Initialized
00> [00:00:00.430,755] <dbg> date_time: date_time_core_schedule_update: New periodic date time update in: 300 seconds
00> [00:00:00.430,786] <inf> net_config: Initializing network
00> [00:00:00.430,847] <inf> net_config: IPv4 address: 192.168.0.10
00> [00:00:03.547,973] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): li 0
00> [00:00:03.548,004] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): vn 3
00> [00:00:03.548,034] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): mode 4
00> [00:00:03.548,034] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): stratum: 1
00> [00:00:03.548,065] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): poll: 0
00> [00:00:03.548,065] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): precision: e9
00> [00:00:03.548,065] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): root_delay: 0
00> [00:00:03.548,095] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): root_dispersion: 43170a00
00> [00:00:03.548,095] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): ref_id: 4c434f4c
00> [00:00:03.548,126] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): ref_tm_s: 4bba3de7
00> [00:00:03.548,126] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): ref_tm_f: 589e51e8
00> [00:00:03.548,156] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): orig_tm_s: 837eaa83
00> [00:00:03.548,187] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): orig_tm_f: 0
00> [00:00:03.548,187] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): rx_tm_s: f6d83de7
00> [00:00:03.548,217] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): rx_tm_f: ed467ac4
00> [00:00:03.548,217] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): tx_tm_s: f6d83de7
00> [00:00:03.548,217] <dbg> net_sntp: sntp_pkt_dump: (0x20001b10): tx_tm_f: 4db27ac4

00> [00:05:00.430,847] <dbg> date_time: date_time_update_thread: Updating date time UTC...
00> [00:05:00.430,847] <dbg> date_time: date_time_core_current_check: Date time never set
00> [00:05:00.430,877] <dbg> date_time: date_time_update_thread: Getting time from NTP server
00> [00:05:00.430,938] <wrn> date_time: getaddrinfo, error: -2
00> [00:05:00.430,938] <dbg> date_time: date_time_ntp_get: Did not get time from NTP server ntp.uio.no, error -2
00> [00:05:00.430,999] <wrn> date_time: getaddrinfo, error: -2
00> [00:05:00.431,030] <dbg> date_time: date_time_ntp_get: Did not get time from NTP server time.google.com, error -2
00> [00:05:00.431,030] <wrn> date_time: Did not get time from any NTP server
00> [00:05:00.431,060] <dbg> date_time: date_time_update_thread: Did not get time from any time source
00> [00:05:00.431,060] <dbg> date_time: date_time_core_schedule_update: New periodic date time update in: 300 seconds

# Network address config
CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_NET_CONFIG_NEED_IPV4=y
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.0.10"
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.168.0.110"
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
CONFIG_NET_LOG=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y

# CLOCK
CONFIG_POSIX_CLOCK=y
CONFIG_POSIX_API=y
CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_AUTO_UPDATE=n
CONFIG_DATE_TIME_NTP=y
CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=300
CONFIG_DATE_TIME_TOO_OLD_SECONDS=60
CONFIG_DATE_TIME_THREAD_STACK_SIZE=1024
CONFIG_DATE_TIME_LOG_LEVEL_DBG=y

# SNTP
CONFIG_SNTP=y
CONFIG_NET_CONFIG_CLOCK_SNTP_INIT=y
CONFIG_NET_CONFIG_SNTP_INIT_TIMEOUT=5000
CONFIG_NET_CONFIG_SNTP_INIT_SERVER="192.168.0.110"
CONFIG_SNTP_LOG_LEVEL_DBG=y
# Network address config
CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_NET_CONFIG_NEED_IPV4=y
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.0.10"
CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.168.0.110"
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
CONFIG_NET_LOG=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y

# CLOCK
CONFIG_POSIX_CLOCK=y
CONFIG_POSIX_API=y
CONFIG_DATE_TIME=y
CONFIG_DATE_TIME_AUTO_UPDATE=n
CONFIG_DATE_TIME_NTP=y
CONFIG_DATE_TIME_UPDATE_INTERVAL_SECONDS=300
CONFIG_DATE_TIME_TOO_OLD_SECONDS=60
CONFIG_DATE_TIME_THREAD_STACK_SIZE=1024
CONFIG_DATE_TIME_LOG_LEVEL_DBG=y

# SNTP
CONFIG_SNTP=y
CONFIG_NET_CONFIG_CLOCK_SNTP_INIT=y
CONFIG_NET_CONFIG_SNTP_INIT_TIMEOUT=5000
CONFIG_NET_CONFIG_SNTP_INIT_SERVER="192.168.0.110"
CONFIG_SNTP_LOG_LEVEL_DBG=y
I will appreciate your comments
Parents Reply Children
Related