1/* 2 * (C) Masami Komiya <mkomiya@sonare.it> 2005 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7#ifndef __SNTP_H__ 8#define __SNTP_H__ 9 10#define NTP_SERVICE_PORT 123 11#define SNTP_PACKET_LEN 48 12 13 14/* Leap Indicator */ 15#define NTP_LI_NOLEAP 0x0 16#define NTP_LI_61SECS 0x1 17#define NTP_LI_59SECS 0x2 18#define NTP_LI_ALARM 0x3 19 20/* Version */ 21 22#define NTP_VERSION 4 23 24/* Mode */ 25#define NTP_MODE_RESERVED 0 26#define NTP_MODE_SYMACTIVE 1 /* Symmetric Active */ 27#define NTP_MODE_SYMPASSIVE 2 /* Symmetric Passive */ 28#define NTP_MODE_CLIENT 3 29#define NTP_MODE_SERVER 4 30#define NTP_MODE_BROADCAST 5 31#define NTP_MODE_NTPCTRL 6 /* Reserved for NTP control message */ 32#define NTP_MODE_PRIVATE 7 /* Reserved for private use */ 33 34struct sntp_pkt_t { 35#if __LITTLE_ENDIAN 36 uchar mode:3; 37 uchar vn:3; 38 uchar li:2; 39#else 40 uchar li:2; 41 uchar vn:3; 42 uchar mode:3; 43#endif 44 uchar stratum; 45 uchar poll; 46 uchar precision; 47 uint root_delay; 48 uint root_dispersion; 49 uint reference_id; 50 unsigned long long reference_timestamp; 51 unsigned long long originate_timestamp; 52 unsigned long long receive_timestamp; 53 unsigned long long transmit_timestamp; 54}; 55 56void sntp_start(void); /* Begin SNTP */ 57 58#endif /* __SNTP_H__ */ 59