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 */