1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2012 David Hoeppner.  All rights reserved.
  14  */
  15 
  16 #ifndef _NETINET_DCCP_H
  17 #define _NETINET_DCCP_H
  18 
  19 #ifdef  __cplusplus
  20 extern "C" {
  21 #endif
  22 
  23 /*
  24  * DCCP header
  25  */
  26 struct dccphdr {
  27         uint16_t        dh_sport;
  28         uint16_t        dh_dport;
  29         uint8_t         dh_offset;
  30 #ifdef _BIT_FIELDS_LTOH
  31         uint8_t         dha_ccval:4,
  32                         dha_cscov:4;
  33 #else
  34         uint8_t         dha_cscov:4,
  35                         dha_ccval:4;
  36 #endif
  37         uint16_t        dha_sum;
  38 #ifdef _BIT_FIELDS_LTOH
  39         uint8_t         dha_x:1,
  40                         dha_type:4,
  41                         dha_reserved:3;
  42 #else
  43         uint8_t         dha_reserved:3,
  44                         dha_type:4,
  45                         dha_x:1;
  46 #endif
  47         uint8_t         dha_res_seq;
  48         uint16_t        dha_seq;
  49 };
  50 
  51 /*
  52  * DCCP states
  53  */
  54 #define DCCPS_CLOSED    -5
  55 #define DCCPS_IDLE      -5
  56 #define DCCPS_BOUND     -4
  57 #define DCCPS_LISTEN    -3
  58 #define DCCPS_REQUEST   -2
  59 #define DCCPS_REQUEST_SENT      -2
  60 #define DCCPS_REQUEST_RCVD      -2
  61 #define DCCPS_RESPOND   -1
  62 #define DCCPS_ACK_RCVD  -1
  63 #define DCCPS_PARTOPEN  0
  64 #define DCCPS_ACK_SENT          1
  65 #define DCCPS_ESTABLISHED       2
  66 
  67 
  68 #ifdef  __cplusplus
  69 }
  70 #endif
  71 
  72 #endif  /* _NETINET_DCCP_H */