summaryrefslogtreecommitdiff
path: root/sysroot/usr/include/linux/dccp.h
blob: 5e33777824aa762aa78edf3c73e42e9582e6f579 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_DCCP_H
#define _LINUX_DCCP_H

#include <linux/types.h>
#include <asm/byteorder.h>

struct dccp_hdr {
 __be16 dccph_sport,
 dccph_dport;
 __u8 dccph_doff;
#ifdef __LITTLE_ENDIAN_BITFIELD
 __u8 dccph_cscov:4,
 dccph_ccval:4;
#elif defined(__BIG_ENDIAN_BITFIELD)
 __u8 dccph_ccval:4,
 dccph_cscov:4;
#else
#error "Adjust your <asm/byteorder.h> defines"
#endif
 __u16 dccph_checksum;
#ifdef __LITTLE_ENDIAN_BITFIELD
 __u8 dccph_x:1,
 dccph_type:4,
 dccph_reserved:3;
#elif defined(__BIG_ENDIAN_BITFIELD)
 __u8 dccph_reserved:3,
 dccph_type:4,
 dccph_x:1;
#else
#error "Adjust your <asm/byteorder.h> defines"
#endif
 __u8 dccph_seq2;
 __be16 dccph_seq;
};

struct dccp_hdr_ext {
 __be32 dccph_seq_low;
};

struct dccp_hdr_request {
 __be32 dccph_req_service;
};

struct dccp_hdr_ack_bits {
 __be16 dccph_reserved1;
 __be16 dccph_ack_nr_high;
 __be32 dccph_ack_nr_low;
};

struct dccp_hdr_response {
 struct dccp_hdr_ack_bits dccph_resp_ack;
 __be32 dccph_resp_service;
};

struct dccp_hdr_reset {
 struct dccp_hdr_ack_bits dccph_reset_ack;
 __u8 dccph_reset_code,
 dccph_reset_data[3];
};

enum dccp_pkt_type {
 DCCP_PKT_REQUEST = 0,
 DCCP_PKT_RESPONSE,
 DCCP_PKT_DATA,
 DCCP_PKT_ACK,
 DCCP_PKT_DATAACK,
 DCCP_PKT_CLOSEREQ,
 DCCP_PKT_CLOSE,
 DCCP_PKT_RESET,
 DCCP_PKT_SYNC,
 DCCP_PKT_SYNCACK,
 DCCP_PKT_INVALID,
};

#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID

enum {
 DCCPO_PADDING = 0,
 DCCPO_MANDATORY = 1,
 DCCPO_MIN_RESERVED = 3,
 DCCPO_MAX_RESERVED = 31,
 DCCPO_CHANGE_L = 32,
 DCCPO_CONFIRM_L = 33,
 DCCPO_CHANGE_R = 34,
 DCCPO_CONFIRM_R = 35,
 DCCPO_NDP_COUNT = 37,
 DCCPO_ACK_VECTOR_0 = 38,
 DCCPO_ACK_VECTOR_1 = 39,
 DCCPO_TIMESTAMP = 41,
 DCCPO_TIMESTAMP_ECHO = 42,
 DCCPO_ELAPSED_TIME = 43,
 DCCPO_MAX = 45,
 DCCPO_MIN_CCID_SPECIFIC = 128,
 DCCPO_MAX_CCID_SPECIFIC = 255,
};

enum {
 DCCPF_RESERVED = 0,
 DCCPF_CCID = 1,
 DCCPF_SEQUENCE_WINDOW = 3,
 DCCPF_ACK_RATIO = 5,
 DCCPF_SEND_ACK_VECTOR = 6,
 DCCPF_SEND_NDP_COUNT = 7,

 DCCPF_MIN_CCID_SPECIFIC = 128,
 DCCPF_MAX_CCID_SPECIFIC = 255,
};

struct dccp_so_feat {
 __u8 dccpsf_feat;
 __u8 *dccpsf_val;
 __u8 dccpsf_len;
};

#define DCCP_SOCKOPT_PACKET_SIZE 1
#define DCCP_SOCKOPT_SERVICE 2
#define DCCP_SOCKOPT_CHANGE_L 3
#define DCCP_SOCKOPT_CHANGE_R 4
#define DCCP_SOCKOPT_CCID_RX_INFO 128
#define DCCP_SOCKOPT_CCID_TX_INFO 192

#define DCCP_SERVICE_LIST_MAX_LEN 32

#endif