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  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _LINUX_DCCP_H
     13 #define _LINUX_DCCP_H
     14 
     15 #include <linux/types.h>
     16 #include <asm/byteorder.h>
     17 
     18 struct dccp_hdr {
     19  __be16 dccph_sport,
     20  dccph_dport;
     21  __u8 dccph_doff;
     22 #ifdef __LITTLE_ENDIAN_BITFIELD
     23  __u8 dccph_cscov:4,
     24  dccph_ccval:4;
     25 #elif defined(__BIG_ENDIAN_BITFIELD)
     26  __u8 dccph_ccval:4,
     27  dccph_cscov:4;
     28 #else
     29 #error "Adjust your <asm/byteorder.h> defines"
     30 #endif
     31  __u16 dccph_checksum;
     32 #ifdef __LITTLE_ENDIAN_BITFIELD
     33  __u8 dccph_x:1,
     34  dccph_type:4,
     35  dccph_reserved:3;
     36 #elif defined(__BIG_ENDIAN_BITFIELD)
     37  __u8 dccph_reserved:3,
     38  dccph_type:4,
     39  dccph_x:1;
     40 #else
     41 #error "Adjust your <asm/byteorder.h> defines"
     42 #endif
     43  __u8 dccph_seq2;
     44  __be16 dccph_seq;
     45 };
     46 
     47 struct dccp_hdr_ext {
     48  __be32 dccph_seq_low;
     49 };
     50 
     51 struct dccp_hdr_request {
     52  __be32 dccph_req_service;
     53 };
     54 
     55 struct dccp_hdr_ack_bits {
     56  __be16 dccph_reserved1;
     57  __be16 dccph_ack_nr_high;
     58  __be32 dccph_ack_nr_low;
     59 };
     60 
     61 struct dccp_hdr_response {
     62  struct dccp_hdr_ack_bits dccph_resp_ack;
     63  __be32 dccph_resp_service;
     64 };
     65 
     66 struct dccp_hdr_reset {
     67  struct dccp_hdr_ack_bits dccph_reset_ack;
     68  __u8 dccph_reset_code,
     69  dccph_reset_data[3];
     70 };
     71 
     72 enum dccp_pkt_type {
     73  DCCP_PKT_REQUEST = 0,
     74  DCCP_PKT_RESPONSE,
     75  DCCP_PKT_DATA,
     76  DCCP_PKT_ACK,
     77  DCCP_PKT_DATAACK,
     78  DCCP_PKT_CLOSEREQ,
     79  DCCP_PKT_CLOSE,
     80  DCCP_PKT_RESET,
     81  DCCP_PKT_SYNC,
     82  DCCP_PKT_SYNCACK,
     83  DCCP_PKT_INVALID,
     84 };
     85 
     86 #define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID
     87 
     88 enum {
     89  DCCPO_PADDING = 0,
     90  DCCPO_MANDATORY = 1,
     91  DCCPO_MIN_RESERVED = 3,
     92  DCCPO_MAX_RESERVED = 31,
     93  DCCPO_CHANGE_L = 32,
     94  DCCPO_CONFIRM_L = 33,
     95  DCCPO_CHANGE_R = 34,
     96  DCCPO_CONFIRM_R = 35,
     97  DCCPO_NDP_COUNT = 37,
     98  DCCPO_ACK_VECTOR_0 = 38,
     99  DCCPO_ACK_VECTOR_1 = 39,
    100  DCCPO_TIMESTAMP = 41,
    101  DCCPO_TIMESTAMP_ECHO = 42,
    102  DCCPO_ELAPSED_TIME = 43,
    103  DCCPO_MAX = 45,
    104  DCCPO_MIN_CCID_SPECIFIC = 128,
    105  DCCPO_MAX_CCID_SPECIFIC = 255,
    106 };
    107 
    108 enum {
    109  DCCPF_RESERVED = 0,
    110  DCCPF_CCID = 1,
    111  DCCPF_SEQUENCE_WINDOW = 3,
    112  DCCPF_ACK_RATIO = 5,
    113  DCCPF_SEND_ACK_VECTOR = 6,
    114  DCCPF_SEND_NDP_COUNT = 7,
    115 
    116  DCCPF_MIN_CCID_SPECIFIC = 128,
    117  DCCPF_MAX_CCID_SPECIFIC = 255,
    118 };
    119 
    120 struct dccp_so_feat {
    121  __u8 dccpsf_feat;
    122  __u8 *dccpsf_val;
    123  __u8 dccpsf_len;
    124 };
    125 
    126 #define DCCP_SOCKOPT_PACKET_SIZE 1
    127 #define DCCP_SOCKOPT_SERVICE 2
    128 #define DCCP_SOCKOPT_CHANGE_L 3
    129 #define DCCP_SOCKOPT_CHANGE_R 4
    130 #define DCCP_SOCKOPT_CCID_RX_INFO 128
    131 #define DCCP_SOCKOPT_CCID_TX_INFO 192
    132 
    133 #define DCCP_SERVICE_LIST_MAX_LEN 32
    134 
    135 #endif
    136