blob: b4f03ccd04d9f48f17218a30e25cf0b69349fdd1 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_LINUX_DCCP_H
8#define _UAPI_LINUX_DCCP_H
9#include <linux/types.h>
10#include <asm/byteorder.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011struct dccp_hdr {
Tao Baod7db5942015-01-28 10:07:51 -080012 __be16 dccph_sport, dccph_dport;
13 __u8 dccph_doff;
Ben Cheng655a7c02013-10-16 16:09:24 -070014#ifdef __LITTLE_ENDIAN_BITFIELD
Tao Baod7db5942015-01-28 10:07:51 -080015 __u8 dccph_cscov : 4, dccph_ccval : 4;
Ben Cheng655a7c02013-10-16 16:09:24 -070016#elif defined(__BIG_ENDIAN_BITFIELD)
Tao Baod7db5942015-01-28 10:07:51 -080017 __u8 dccph_ccval : 4, dccph_cscov : 4;
Ben Cheng655a7c02013-10-16 16:09:24 -070018#else
Tao Baod7db5942015-01-28 10:07:51 -080019#error "Adjust your <asm/byteorder.h> defines"
Ben Cheng655a7c02013-10-16 16:09:24 -070020#endif
Tao Baod7db5942015-01-28 10:07:51 -080021 __sum16 dccph_checksum;
Ben Cheng655a7c02013-10-16 16:09:24 -070022#ifdef __LITTLE_ENDIAN_BITFIELD
Tao Baod7db5942015-01-28 10:07:51 -080023 __u8 dccph_x : 1, dccph_type : 4, dccph_reserved : 3;
Ben Cheng655a7c02013-10-16 16:09:24 -070024#elif defined(__BIG_ENDIAN_BITFIELD)
Tao Baod7db5942015-01-28 10:07:51 -080025 __u8 dccph_reserved : 3, dccph_type : 4, dccph_x : 1;
Ben Cheng655a7c02013-10-16 16:09:24 -070026#else
Tao Baod7db5942015-01-28 10:07:51 -080027#error "Adjust your <asm/byteorder.h> defines"
Ben Cheng655a7c02013-10-16 16:09:24 -070028#endif
Tao Baod7db5942015-01-28 10:07:51 -080029 __u8 dccph_seq2;
30 __be16 dccph_seq;
Ben Cheng655a7c02013-10-16 16:09:24 -070031};
Ben Cheng655a7c02013-10-16 16:09:24 -070032struct dccp_hdr_ext {
Tao Baod7db5942015-01-28 10:07:51 -080033 __be32 dccph_seq_low;
Ben Cheng655a7c02013-10-16 16:09:24 -070034};
Tao Baod7db5942015-01-28 10:07:51 -080035struct dccp_hdr_request {
36 __be32 dccph_req_service;
Ben Cheng655a7c02013-10-16 16:09:24 -070037};
38struct dccp_hdr_ack_bits {
Tao Baod7db5942015-01-28 10:07:51 -080039 __be16 dccph_reserved1;
40 __be16 dccph_ack_nr_high;
41 __be32 dccph_ack_nr_low;
Ben Cheng655a7c02013-10-16 16:09:24 -070042};
43struct dccp_hdr_response {
Tao Baod7db5942015-01-28 10:07:51 -080044 struct dccp_hdr_ack_bits dccph_resp_ack;
45 __be32 dccph_resp_service;
Ben Cheng655a7c02013-10-16 16:09:24 -070046};
Tao Baod7db5942015-01-28 10:07:51 -080047struct dccp_hdr_reset {
48 struct dccp_hdr_ack_bits dccph_reset_ack;
49 __u8 dccph_reset_code, dccph_reset_data[3];
Ben Cheng655a7c02013-10-16 16:09:24 -070050};
Ben Cheng655a7c02013-10-16 16:09:24 -070051enum dccp_pkt_type {
Tao Baod7db5942015-01-28 10:07:51 -080052 DCCP_PKT_REQUEST = 0,
53 DCCP_PKT_RESPONSE,
54 DCCP_PKT_DATA,
Tao Baod7db5942015-01-28 10:07:51 -080055 DCCP_PKT_ACK,
56 DCCP_PKT_DATAACK,
57 DCCP_PKT_CLOSEREQ,
58 DCCP_PKT_CLOSE,
Tao Baod7db5942015-01-28 10:07:51 -080059 DCCP_PKT_RESET,
60 DCCP_PKT_SYNC,
61 DCCP_PKT_SYNCACK,
62 DCCP_PKT_INVALID,
Ben Cheng655a7c02013-10-16 16:09:24 -070063};
64#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID
65enum dccp_reset_codes {
Tao Baod7db5942015-01-28 10:07:51 -080066 DCCP_RESET_CODE_UNSPECIFIED = 0,
Tao Baod7db5942015-01-28 10:07:51 -080067 DCCP_RESET_CODE_CLOSED,
68 DCCP_RESET_CODE_ABORTED,
69 DCCP_RESET_CODE_NO_CONNECTION,
70 DCCP_RESET_CODE_PACKET_ERROR,
Tao Baod7db5942015-01-28 10:07:51 -080071 DCCP_RESET_CODE_OPTION_ERROR,
72 DCCP_RESET_CODE_MANDATORY_ERROR,
73 DCCP_RESET_CODE_CONNECTION_REFUSED,
74 DCCP_RESET_CODE_BAD_SERVICE_CODE,
Tao Baod7db5942015-01-28 10:07:51 -080075 DCCP_RESET_CODE_TOO_BUSY,
76 DCCP_RESET_CODE_BAD_INIT_COOKIE,
77 DCCP_RESET_CODE_AGGRESSION_PENALTY,
78 DCCP_MAX_RESET_CODES
Ben Cheng655a7c02013-10-16 16:09:24 -070079};
80enum {
Tao Baod7db5942015-01-28 10:07:51 -080081 DCCPO_PADDING = 0,
82 DCCPO_MANDATORY = 1,
Tao Baod7db5942015-01-28 10:07:51 -080083 DCCPO_MIN_RESERVED = 3,
84 DCCPO_MAX_RESERVED = 31,
85 DCCPO_CHANGE_L = 32,
86 DCCPO_CONFIRM_L = 33,
Tao Baod7db5942015-01-28 10:07:51 -080087 DCCPO_CHANGE_R = 34,
88 DCCPO_CONFIRM_R = 35,
89 DCCPO_NDP_COUNT = 37,
90 DCCPO_ACK_VECTOR_0 = 38,
Tao Baod7db5942015-01-28 10:07:51 -080091 DCCPO_ACK_VECTOR_1 = 39,
92 DCCPO_TIMESTAMP = 41,
93 DCCPO_TIMESTAMP_ECHO = 42,
94 DCCPO_ELAPSED_TIME = 43,
Tao Baod7db5942015-01-28 10:07:51 -080095 DCCPO_MAX = 45,
96 DCCPO_MIN_RX_CCID_SPECIFIC = 128,
97 DCCPO_MAX_RX_CCID_SPECIFIC = 191,
98 DCCPO_MIN_TX_CCID_SPECIFIC = 192,
Tao Baod7db5942015-01-28 10:07:51 -080099 DCCPO_MAX_TX_CCID_SPECIFIC = 255,
Ben Cheng655a7c02013-10-16 16:09:24 -0700100};
101#define DCCP_SINGLE_OPT_MAXLEN 253
102enum {
Tao Baod7db5942015-01-28 10:07:51 -0800103 DCCPC_CCID2 = 2,
104 DCCPC_CCID3 = 3,
Ben Cheng655a7c02013-10-16 16:09:24 -0700105};
106enum dccp_feature_numbers {
Tao Baod7db5942015-01-28 10:07:51 -0800107 DCCPF_RESERVED = 0,
108 DCCPF_CCID = 1,
109 DCCPF_SHORT_SEQNOS = 2,
110 DCCPF_SEQUENCE_WINDOW = 3,
Tao Baod7db5942015-01-28 10:07:51 -0800111 DCCPF_ECN_INCAPABLE = 4,
112 DCCPF_ACK_RATIO = 5,
113 DCCPF_SEND_ACK_VECTOR = 6,
114 DCCPF_SEND_NDP_COUNT = 7,
Tao Baod7db5942015-01-28 10:07:51 -0800115 DCCPF_MIN_CSUM_COVER = 8,
116 DCCPF_DATA_CHECKSUM = 9,
117 DCCPF_MIN_CCID_SPECIFIC = 128,
118 DCCPF_SEND_LEV_RATE = 192,
Tao Baod7db5942015-01-28 10:07:51 -0800119 DCCPF_MAX_CCID_SPECIFIC = 255,
Ben Cheng655a7c02013-10-16 16:09:24 -0700120};
121enum dccp_cmsg_type {
Tao Baod7db5942015-01-28 10:07:51 -0800122 DCCP_SCM_PRIORITY = 1,
Tao Baod7db5942015-01-28 10:07:51 -0800123 DCCP_SCM_QPOLICY_MAX = 0xFFFF,
124 DCCP_SCM_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700125};
126enum dccp_packet_dequeueing_policy {
Tao Baod7db5942015-01-28 10:07:51 -0800127 DCCPQ_POLICY_SIMPLE,
128 DCCPQ_POLICY_PRIO,
129 DCCPQ_POLICY_MAX
Ben Cheng655a7c02013-10-16 16:09:24 -0700130};
Ben Cheng655a7c02013-10-16 16:09:24 -0700131#define DCCP_SOCKOPT_PACKET_SIZE 1
132#define DCCP_SOCKOPT_SERVICE 2
133#define DCCP_SOCKOPT_CHANGE_L 3
134#define DCCP_SOCKOPT_CHANGE_R 4
Ben Cheng655a7c02013-10-16 16:09:24 -0700135#define DCCP_SOCKOPT_GET_CUR_MPS 5
136#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
137#define DCCP_SOCKOPT_SEND_CSCOV 10
138#define DCCP_SOCKOPT_RECV_CSCOV 11
Ben Cheng655a7c02013-10-16 16:09:24 -0700139#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
140#define DCCP_SOCKOPT_CCID 13
141#define DCCP_SOCKOPT_TX_CCID 14
142#define DCCP_SOCKOPT_RX_CCID 15
Ben Cheng655a7c02013-10-16 16:09:24 -0700143#define DCCP_SOCKOPT_QPOLICY_ID 16
144#define DCCP_SOCKOPT_QPOLICY_TXQLEN 17
145#define DCCP_SOCKOPT_CCID_RX_INFO 128
146#define DCCP_SOCKOPT_CCID_TX_INFO 192
Ben Cheng655a7c02013-10-16 16:09:24 -0700147#define DCCP_SERVICE_LIST_MAX_LEN 32
148#endif