1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
6 *
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
10 */
11
12 /*
13 * Copyright 2012 David Hoeppner. All rights reserved.
14 */
15
16 #ifndef _NETINET_DCCP_H
17 #define _NETINET_DCCP_H
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22
23 /*
24 * DCCP header
25 */
26 struct dccphdr {
27 uint16_t dh_sport;
28 uint16_t dh_dport;
29 uint8_t dh_offset;
30 #ifdef _BIT_FIELDS_LTOH
31 uint8_t dh_cscov:4,
32 dh_ccval:4;
33 #else
34 uint8_t dh_ccval:4,
35 dh_cscov:4;
36 #endif
37 uint16_t dh_sum;
38 #ifdef _BIT_FIELDS_LTOH
39 uint8_t dh_x:1,
40 dh_type:4,
41 dh_reserved:3;
42 #else
43 uint8_t dh_reserved:3,
44 dh_type:4,
45 dh_x:1;
46 #endif
47 uint8_t dh_res_seq;
48 uint16_t dh_seq;
49 };
50
51 #define DCCPOPT_PADDING 0
52 #define DCCPOPT_MANDATORY 1
53 #define DCCPOPT_SLOW_RECEIVER 2
54 #define DCCPOPT_CHANGE_L 32
55 #define DCCPOPT_CONFIRM_L 33
56 #define DCCPOPT_CHANGE_R 34
57 #define DCCPOPT_CONFIRM_R 35
58 #define DCCPOPT_INIT_COOKIE 36
59 #define DCCPOPT_NDP_COUNT 37
60 #define DCCPOPT_ACK_VECTOR_1 38
61 #define DCCPOPT_ACK_VECTOR_2 39
62 #define DCCPOPT_DATA_DROPPED 40
63 #define DCCPOPT_TIMESTAMP 41
64 #define DCCPOPT_TIMESTAMP_ECHO 42
65 #define DCCPOPT_ELAPSED_TIME 43
66 #define DCCPOPT_DATA_CHECKSUM 44
67
68 /*
69 * Options for use with getsockopt and setsockopt.
70 */
71
72 #define DCCP_KEEPALIVE 0x08
73 #define DCCP_NOTIFY_THRESHOLD 0x10
74 #define DCCP_ABORT_THRESHOLD 0x11
75 #define DCCP_CONN_NOTIFY_THRESHOLD 0x12
76 #define DCCP_CONN_ABORT_THRESHOLD 0x13
77
78 #define DCCP_KEEPALIVE_THRESHOLD 0x16
79 #define DCCP_KEEPALIVE_ABORT_THRESHOLD 0x17
80
81 #define DCCP_KEEPIDLE 0x22
82 #define DCCP_KEEPCNT 0x23
83 #define DCCP_KEEPINTVL 0x24
84
85 #ifdef __cplusplus
86 }
87 #endif
88
89 #endif /* _NETINET_DCCP_H */