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