111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_DCCP_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_DCCP_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/byteorder.h>
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr {
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be16 dccph_sport,
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_dport;
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_doff;
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __LITTLE_ENDIAN_BITFIELD
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_cscov:4,
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_ccval:4;
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__BIG_ENDIAN_BITFIELD)
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_ccval:4,
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_cscov:4;
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#error "Adjust your <asm/byteorder.h> defines"
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 dccph_checksum;
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __LITTLE_ENDIAN_BITFIELD
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_x:1,
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_type:4,
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_reserved:3;
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__BIG_ENDIAN_BITFIELD)
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_reserved:3,
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_type:4,
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_x:1;
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#error "Adjust your <asm/byteorder.h> defines"
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_seq2;
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be16 dccph_seq;
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr_ext {
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be32 dccph_seq_low;
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr_request {
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be32 dccph_req_service;
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr_ack_bits {
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be16 dccph_reserved1;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be16 dccph_ack_nr_high;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be32 dccph_ack_nr_low;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr_response {
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dccp_hdr_ack_bits dccph_resp_ack;
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __be32 dccph_resp_service;
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_hdr_reset {
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dccp_hdr_ack_bits dccph_reset_ack;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccph_reset_code,
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dccph_reset_data[3];
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum dccp_pkt_type {
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_REQUEST = 0,
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_RESPONSE,
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_DATA,
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_ACK,
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_DATAACK,
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_CLOSEREQ,
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_CLOSE,
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_RESET,
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_SYNC,
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_SYNCACK,
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCP_PKT_INVALID,
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_NR_PKT_TYPES DCCP_PKT_INVALID
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum {
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_PADDING = 0,
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MANDATORY = 1,
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MIN_RESERVED = 3,
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MAX_RESERVED = 31,
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_CHANGE_L = 32,
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_CONFIRM_L = 33,
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_CHANGE_R = 34,
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_CONFIRM_R = 35,
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_NDP_COUNT = 37,
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_ACK_VECTOR_0 = 38,
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_ACK_VECTOR_1 = 39,
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_TIMESTAMP = 41,
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_TIMESTAMP_ECHO = 42,
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_ELAPSED_TIME = 43,
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MAX = 45,
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MIN_CCID_SPECIFIC = 128,
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPO_MAX_CCID_SPECIFIC = 255,
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum {
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_RESERVED = 0,
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_CCID = 1,
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_SEQUENCE_WINDOW = 3,
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_ACK_RATIO = 5,
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_SEND_ACK_VECTOR = 6,
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_SEND_NDP_COUNT = 7,
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_MIN_CCID_SPECIFIC = 128,
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert DCCPF_MAX_CCID_SPECIFIC = 255,
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dccp_so_feat {
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccpsf_feat;
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 *dccpsf_val;
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dccpsf_len;
12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_PACKET_SIZE 1
12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_SERVICE 2
12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_CHANGE_L 3
12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_CHANGE_R 4
13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_CCID_RX_INFO 128
13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SOCKOPT_CCID_TX_INFO 192
13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DCCP_SERVICE_LIST_MAX_LEN 32
13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
136