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