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