xref: /openbmc/u-boot/net/sntp.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
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