net: Use packed structures for networking
[karo-tx-uboot.git] / net / sntp.h
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__ */