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