1607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#ifndef _UAPI_LINUX_DCCP_H 2607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define _UAPI_LINUX_DCCP_H 3607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 4607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#include <linux/types.h> 5607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#include <asm/byteorder.h> 6607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 7607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 8607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr - generic part of DCCP packet header 9607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 10607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_sport - Relevant port on the endpoint that sent this packet 11607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_dport - Relevant port on the other endpoint 12607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_doff - Data Offset from the start of the DCCP header, in 32-bit words 13607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_ccval - Used by the HC-Sender CCID 14607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_cscov - Parts of the packet that are covered by the Checksum field 15607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_checksum - Internet checksum, depends on dccph_cscov 16607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_x - 0 = 24 bit sequence number, 1 = 48 17607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_type - packet type, see DCCP_PKT_ prefixed macros 18607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_seq - sequence number high or low order 24 bits, depends on dccph_x 19607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 20607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr { 21607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be16 dccph_sport, 22607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_dport; 23607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_doff; 24607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#if defined(__LITTLE_ENDIAN_BITFIELD) 25607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_cscov:4, 26607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_ccval:4; 27607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#elif defined(__BIG_ENDIAN_BITFIELD) 28607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_ccval:4, 29607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_cscov:4; 30607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#else 31607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#error "Adjust your <asm/byteorder.h> defines" 32607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#endif 33607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __sum16 dccph_checksum; 34607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#if defined(__LITTLE_ENDIAN_BITFIELD) 35607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_x:1, 36607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_type:4, 37607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_reserved:3; 38607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#elif defined(__BIG_ENDIAN_BITFIELD) 39607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_reserved:3, 40607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_type:4, 41607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_x:1; 42607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#else 43607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#error "Adjust your <asm/byteorder.h> defines" 44607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#endif 45607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_seq2; 46607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be16 dccph_seq; 47607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 48607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 49607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 50607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr_ext - the low bits of a 48 bit seq packet 51607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 52607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_seq_low - low 24 bits of a 48 bit seq packet 53607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 54607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr_ext { 55607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be32 dccph_seq_low; 56607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 57607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 58607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 59607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr_request - Connection initiation request header 60607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 61607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_req_service - Service to which the client app wants to connect 62607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 63607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr_request { 64607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be32 dccph_req_service; 65607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 66607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 67607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr_ack_bits - acknowledgment bits common to most packets 68607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 69607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_resp_ack_nr_high - 48 bit ack number high order bits, contains GSR 70607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_resp_ack_nr_low - 48 bit ack number low order bits, contains GSR 71607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 72607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr_ack_bits { 73607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be16 dccph_reserved1; 74607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be16 dccph_ack_nr_high; 75607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be32 dccph_ack_nr_low; 76607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 77607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 78607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr_response - Connection initiation response header 79607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 80607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_resp_ack - 48 bit Acknowledgment Number Subheader (5.3) 81607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_resp_service - Echoes the Service Code on a received DCCP-Request 82607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 83607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr_response { 84607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells struct dccp_hdr_ack_bits dccph_resp_ack; 85607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __be32 dccph_resp_service; 86607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 87607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 88607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/** 89607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * struct dccp_hdr_reset - Unconditionally shut down a connection 90607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * 91607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_reset_ack - 48 bit Acknowledgment Number Subheader (5.6) 92607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_reset_code - one of %dccp_reset_codes 93607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells * @dccph_reset_data - the Data 1 ... Data 3 fields from 5.6 94607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells */ 95607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstruct dccp_hdr_reset { 96607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells struct dccp_hdr_ack_bits dccph_reset_ack; 97607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells __u8 dccph_reset_code, 98607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells dccph_reset_data[3]; 99607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 100607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 101607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum dccp_pkt_type { 102607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_REQUEST = 0, 103607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_RESPONSE, 104607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_DATA, 105607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_ACK, 106607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_DATAACK, 107607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_CLOSEREQ, 108607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_CLOSE, 109607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_RESET, 110607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_SYNC, 111607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_SYNCACK, 112607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_PKT_INVALID, 113607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 114607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 115607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID 116607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 117607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsstatic inline unsigned int dccp_packet_hdr_len(const __u8 type) 118607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells{ 119607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells if (type == DCCP_PKT_DATA) 120607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells return 0; 121607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells if (type == DCCP_PKT_DATAACK || 122607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells type == DCCP_PKT_ACK || 123607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells type == DCCP_PKT_SYNC || 124607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells type == DCCP_PKT_SYNCACK || 125607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells type == DCCP_PKT_CLOSE || 126607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells type == DCCP_PKT_CLOSEREQ) 127607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells return sizeof(struct dccp_hdr_ack_bits); 128607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells if (type == DCCP_PKT_REQUEST) 129607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells return sizeof(struct dccp_hdr_request); 130607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells if (type == DCCP_PKT_RESPONSE) 131607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells return sizeof(struct dccp_hdr_response); 132607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells return sizeof(struct dccp_hdr_reset); 133607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells} 134607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum dccp_reset_codes { 135607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_UNSPECIFIED = 0, 136607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_CLOSED, 137607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_ABORTED, 138607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_NO_CONNECTION, 139607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_PACKET_ERROR, 140607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_OPTION_ERROR, 141607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_MANDATORY_ERROR, 142607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_CONNECTION_REFUSED, 143607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_BAD_SERVICE_CODE, 144607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_TOO_BUSY, 145607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_BAD_INIT_COOKIE, 146607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_RESET_CODE_AGGRESSION_PENALTY, 147607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 148607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_MAX_RESET_CODES /* Leave at the end! */ 149607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 150607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 151607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP options */ 152607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum { 153607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_PADDING = 0, 154607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MANDATORY = 1, 155607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MIN_RESERVED = 3, 156607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MAX_RESERVED = 31, 157607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_CHANGE_L = 32, 158607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_CONFIRM_L = 33, 159607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_CHANGE_R = 34, 160607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_CONFIRM_R = 35, 161607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_NDP_COUNT = 37, 162607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_ACK_VECTOR_0 = 38, 163607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_ACK_VECTOR_1 = 39, 164607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_TIMESTAMP = 41, 165607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_TIMESTAMP_ECHO = 42, 166607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_ELAPSED_TIME = 43, 167607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MAX = 45, 168607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MIN_RX_CCID_SPECIFIC = 128, /* from sender to receiver */ 169607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MAX_RX_CCID_SPECIFIC = 191, 170607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MIN_TX_CCID_SPECIFIC = 192, /* from receiver to sender */ 171607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPO_MAX_TX_CCID_SPECIFIC = 255, 172607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 173607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* maximum size of a single TLV-encoded DCCP option (sans type/len bytes) */ 174607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SINGLE_OPT_MAXLEN 253 175607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 176607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP CCIDS */ 177607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum { 178607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPC_CCID2 = 2, 179607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPC_CCID3 = 3, 180607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 181607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 182607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP features (RFC 4340 section 6.4) */ 183607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum dccp_feature_numbers { 184607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_RESERVED = 0, 185607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_CCID = 1, 186607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_SHORT_SEQNOS = 2, 187607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_SEQUENCE_WINDOW = 3, 188607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_ECN_INCAPABLE = 4, 189607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_ACK_RATIO = 5, 190607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_SEND_ACK_VECTOR = 6, 191607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_SEND_NDP_COUNT = 7, 192607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_MIN_CSUM_COVER = 8, 193607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_DATA_CHECKSUM = 9, 194607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells /* 10-127 reserved */ 195607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_MIN_CCID_SPECIFIC = 128, 196607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_SEND_LEV_RATE = 192, /* RFC 4342, sec. 8.4 */ 197607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPF_MAX_CCID_SPECIFIC = 255, 198607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 199607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 200607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP socket control message types for cmsg */ 201607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum dccp_cmsg_type { 202607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_SCM_PRIORITY = 1, 203607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_SCM_QPOLICY_MAX = 0xFFFF, 204607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells /* ^-- Up to here reserved exclusively for qpolicy parameters */ 205607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCP_SCM_MAX 206607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 207607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 208607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP priorities for outgoing/queued packets */ 209607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howellsenum dccp_packet_dequeueing_policy { 210607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPQ_POLICY_SIMPLE, 211607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPQ_POLICY_PRIO, 212607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells DCCPQ_POLICY_MAX 213607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells}; 214607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 215607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* DCCP socket options */ 216607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_PACKET_SIZE 1 /* XXX deprecated, without effect */ 217607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_SERVICE 2 218607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_CHANGE_L 3 219607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_CHANGE_R 4 220607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_GET_CUR_MPS 5 221607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6 222607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_SEND_CSCOV 10 223607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_RECV_CSCOV 11 224607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12 225607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_CCID 13 226607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_TX_CCID 14 227607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_RX_CCID 15 228607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_QPOLICY_ID 16 229607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_QPOLICY_TXQLEN 17 230607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_CCID_RX_INFO 128 231607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SOCKOPT_CCID_TX_INFO 192 232607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 233607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells/* maximum number of services provided on the same listening port */ 234607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#define DCCP_SERVICE_LIST_MAX_LEN 32 235607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 236607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells 237607ca46e97a1b6594b29647d98a32d545c24bdffDavid Howells#endif /* _UAPI_LINUX_DCCP_H */ 238