xref: /rk3399_rockchip-uboot/net/sntp.h (revision 6e7adf7037c76f081b149685fa5e978e2ddf2a22)
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