xref: /openbmc/u-boot/net/sntp.h (revision d9b23e26)
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 
34 struct 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 } __attribute__((packed));
55 
56 void sntp_start(void);	/* Begin SNTP */
57 
58 #endif /* __SNTP_H__ */
59