Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_DCCP_H
     20 #define _UAPI_LINUX_DCCP_H
     21 #include <linux/types.h>
     22 #include <asm/byteorder.h>
     23 struct dccp_hdr {
     24   __be16 dccph_sport, dccph_dport;
     25   __u8 dccph_doff;
     26 #ifdef __LITTLE_ENDIAN_BITFIELD
     27   __u8 dccph_cscov : 4, dccph_ccval : 4;
     28 #elif defined(__BIG_ENDIAN_BITFIELD)
     29   __u8 dccph_ccval : 4, dccph_cscov : 4;
     30 #else
     31 #error "Adjust your <asm/byteorder.h> defines"
     32 #endif
     33   __sum16 dccph_checksum;
     34 #ifdef __LITTLE_ENDIAN_BITFIELD
     35   __u8 dccph_x : 1, dccph_type : 4, dccph_reserved : 3;
     36 #elif defined(__BIG_ENDIAN_BITFIELD)
     37   __u8 dccph_reserved : 3, dccph_type : 4, dccph_x : 1;
     38 #else
     39 #error "Adjust your <asm/byteorder.h> defines"
     40 #endif
     41   __u8 dccph_seq2;
     42   __be16 dccph_seq;
     43 };
     44 struct dccp_hdr_ext {
     45   __be32 dccph_seq_low;
     46 };
     47 struct dccp_hdr_request {
     48   __be32 dccph_req_service;
     49 };
     50 struct dccp_hdr_ack_bits {
     51   __be16 dccph_reserved1;
     52   __be16 dccph_ack_nr_high;
     53   __be32 dccph_ack_nr_low;
     54 };
     55 struct dccp_hdr_response {
     56   struct dccp_hdr_ack_bits dccph_resp_ack;
     57   __be32 dccph_resp_service;
     58 };
     59 struct dccp_hdr_reset {
     60   struct dccp_hdr_ack_bits dccph_reset_ack;
     61   __u8 dccph_reset_code, dccph_reset_data[3];
     62 };
     63 enum dccp_pkt_type {
     64   DCCP_PKT_REQUEST = 0,
     65   DCCP_PKT_RESPONSE,
     66   DCCP_PKT_DATA,
     67   DCCP_PKT_ACK,
     68   DCCP_PKT_DATAACK,
     69   DCCP_PKT_CLOSEREQ,
     70   DCCP_PKT_CLOSE,
     71   DCCP_PKT_RESET,
     72   DCCP_PKT_SYNC,
     73   DCCP_PKT_SYNCACK,
     74   DCCP_PKT_INVALID,
     75 };
     76 #define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID
     77 enum dccp_reset_codes {
     78   DCCP_RESET_CODE_UNSPECIFIED = 0,
     79   DCCP_RESET_CODE_CLOSED,
     80   DCCP_RESET_CODE_ABORTED,
     81   DCCP_RESET_CODE_NO_CONNECTION,
     82   DCCP_RESET_CODE_PACKET_ERROR,
     83   DCCP_RESET_CODE_OPTION_ERROR,
     84   DCCP_RESET_CODE_MANDATORY_ERROR,
     85   DCCP_RESET_CODE_CONNECTION_REFUSED,
     86   DCCP_RESET_CODE_BAD_SERVICE_CODE,
     87   DCCP_RESET_CODE_TOO_BUSY,
     88   DCCP_RESET_CODE_BAD_INIT_COOKIE,
     89   DCCP_RESET_CODE_AGGRESSION_PENALTY,
     90   DCCP_MAX_RESET_CODES
     91 };
     92 enum {
     93   DCCPO_PADDING = 0,
     94   DCCPO_MANDATORY = 1,
     95   DCCPO_MIN_RESERVED = 3,
     96   DCCPO_MAX_RESERVED = 31,
     97   DCCPO_CHANGE_L = 32,
     98   DCCPO_CONFIRM_L = 33,
     99   DCCPO_CHANGE_R = 34,
    100   DCCPO_CONFIRM_R = 35,
    101   DCCPO_NDP_COUNT = 37,
    102   DCCPO_ACK_VECTOR_0 = 38,
    103   DCCPO_ACK_VECTOR_1 = 39,
    104   DCCPO_TIMESTAMP = 41,
    105   DCCPO_TIMESTAMP_ECHO = 42,
    106   DCCPO_ELAPSED_TIME = 43,
    107   DCCPO_MAX = 45,
    108   DCCPO_MIN_RX_CCID_SPECIFIC = 128,
    109   DCCPO_MAX_RX_CCID_SPECIFIC = 191,
    110   DCCPO_MIN_TX_CCID_SPECIFIC = 192,
    111   DCCPO_MAX_TX_CCID_SPECIFIC = 255,
    112 };
    113 #define DCCP_SINGLE_OPT_MAXLEN 253
    114 enum {
    115   DCCPC_CCID2 = 2,
    116   DCCPC_CCID3 = 3,
    117 };
    118 enum dccp_feature_numbers {
    119   DCCPF_RESERVED = 0,
    120   DCCPF_CCID = 1,
    121   DCCPF_SHORT_SEQNOS = 2,
    122   DCCPF_SEQUENCE_WINDOW = 3,
    123   DCCPF_ECN_INCAPABLE = 4,
    124   DCCPF_ACK_RATIO = 5,
    125   DCCPF_SEND_ACK_VECTOR = 6,
    126   DCCPF_SEND_NDP_COUNT = 7,
    127   DCCPF_MIN_CSUM_COVER = 8,
    128   DCCPF_DATA_CHECKSUM = 9,
    129   DCCPF_MIN_CCID_SPECIFIC = 128,
    130   DCCPF_SEND_LEV_RATE = 192,
    131   DCCPF_MAX_CCID_SPECIFIC = 255,
    132 };
    133 enum dccp_cmsg_type {
    134   DCCP_SCM_PRIORITY = 1,
    135   DCCP_SCM_QPOLICY_MAX = 0xFFFF,
    136   DCCP_SCM_MAX
    137 };
    138 enum dccp_packet_dequeueing_policy {
    139   DCCPQ_POLICY_SIMPLE,
    140   DCCPQ_POLICY_PRIO,
    141   DCCPQ_POLICY_MAX
    142 };
    143 #define DCCP_SOCKOPT_PACKET_SIZE 1
    144 #define DCCP_SOCKOPT_SERVICE 2
    145 #define DCCP_SOCKOPT_CHANGE_L 3
    146 #define DCCP_SOCKOPT_CHANGE_R 4
    147 #define DCCP_SOCKOPT_GET_CUR_MPS 5
    148 #define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
    149 #define DCCP_SOCKOPT_SEND_CSCOV 10
    150 #define DCCP_SOCKOPT_RECV_CSCOV 11
    151 #define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
    152 #define DCCP_SOCKOPT_CCID 13
    153 #define DCCP_SOCKOPT_TX_CCID 14
    154 #define DCCP_SOCKOPT_RX_CCID 15
    155 #define DCCP_SOCKOPT_QPOLICY_ID 16
    156 #define DCCP_SOCKOPT_QPOLICY_TXQLEN 17
    157 #define DCCP_SOCKOPT_CCID_RX_INFO 128
    158 #define DCCP_SOCKOPT_CCID_TX_INFO 192
    159 #define DCCP_SERVICE_LIST_MAX_LEN 32
    160 #endif
    161