dccp.h (9b8321531a90c400e9c561d903926eee79639dcf) dccp.h (871a2c16c21b988688b4ab1a78eadd969765c0a3)
1#ifndef _LINUX_DCCP_H
2#define _LINUX_DCCP_H
3
4#include <linux/types.h>
5#include <asm/byteorder.h>
6
7/**
8 * struct dccp_hdr - generic part of DCCP packet header

--- 183 unchanged lines hidden (view full) ---

192 DCCPF_MIN_CSUM_COVER = 8,
193 DCCPF_DATA_CHECKSUM = 9,
194 /* 10-127 reserved */
195 DCCPF_MIN_CCID_SPECIFIC = 128,
196 DCCPF_SEND_LEV_RATE = 192, /* RFC 4342, sec. 8.4 */
197 DCCPF_MAX_CCID_SPECIFIC = 255,
198};
199
1#ifndef _LINUX_DCCP_H
2#define _LINUX_DCCP_H
3
4#include <linux/types.h>
5#include <asm/byteorder.h>
6
7/**
8 * struct dccp_hdr - generic part of DCCP packet header

--- 183 unchanged lines hidden (view full) ---

192 DCCPF_MIN_CSUM_COVER = 8,
193 DCCPF_DATA_CHECKSUM = 9,
194 /* 10-127 reserved */
195 DCCPF_MIN_CCID_SPECIFIC = 128,
196 DCCPF_SEND_LEV_RATE = 192, /* RFC 4342, sec. 8.4 */
197 DCCPF_MAX_CCID_SPECIFIC = 255,
198};
199
200/* DCCP socket control message types for cmsg */
201enum dccp_cmsg_type {
202 DCCP_SCM_PRIORITY = 1,
203 DCCP_SCM_QPOLICY_MAX = 0xFFFF,
204 /* ^-- Up to here reserved exclusively for qpolicy parameters */
205 DCCP_SCM_MAX
206};
207
208/* DCCP priorities for outgoing/queued packets */
209enum dccp_packet_dequeueing_policy {
210 DCCPQ_POLICY_SIMPLE,
211 DCCPQ_POLICY_PRIO,
212 DCCPQ_POLICY_MAX
213};
214
200/* DCCP socket options */
201#define DCCP_SOCKOPT_PACKET_SIZE 1 /* XXX deprecated, without effect */
202#define DCCP_SOCKOPT_SERVICE 2
203#define DCCP_SOCKOPT_CHANGE_L 3
204#define DCCP_SOCKOPT_CHANGE_R 4
205#define DCCP_SOCKOPT_GET_CUR_MPS 5
206#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
207#define DCCP_SOCKOPT_SEND_CSCOV 10
208#define DCCP_SOCKOPT_RECV_CSCOV 11
209#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
210#define DCCP_SOCKOPT_CCID 13
211#define DCCP_SOCKOPT_TX_CCID 14
212#define DCCP_SOCKOPT_RX_CCID 15
215/* DCCP socket options */
216#define DCCP_SOCKOPT_PACKET_SIZE 1 /* XXX deprecated, without effect */
217#define DCCP_SOCKOPT_SERVICE 2
218#define DCCP_SOCKOPT_CHANGE_L 3
219#define DCCP_SOCKOPT_CHANGE_R 4
220#define DCCP_SOCKOPT_GET_CUR_MPS 5
221#define DCCP_SOCKOPT_SERVER_TIMEWAIT 6
222#define DCCP_SOCKOPT_SEND_CSCOV 10
223#define DCCP_SOCKOPT_RECV_CSCOV 11
224#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12
225#define DCCP_SOCKOPT_CCID 13
226#define DCCP_SOCKOPT_TX_CCID 14
227#define DCCP_SOCKOPT_RX_CCID 15
228#define DCCP_SOCKOPT_QPOLICY_ID 16
229#define DCCP_SOCKOPT_QPOLICY_TXQLEN 17
213#define DCCP_SOCKOPT_CCID_RX_INFO 128
214#define DCCP_SOCKOPT_CCID_TX_INFO 192
215
216/* maximum number of services provided on the same listening port */
217#define DCCP_SERVICE_LIST_MAX_LEN 32
218
219#ifdef __KERNEL__
220

--- 232 unchanged lines hidden (view full) ---

453 * @dccps_ndp_count - number of Non Data Packets since last data packet
454 * @dccps_mss_cache - current value of MSS (path MTU minus header sizes)
455 * @dccps_rate_last - timestamp for rate-limiting DCCP-Sync (RFC 4340, 7.5.4)
456 * @dccps_featneg - tracks feature-negotiation state (mostly during handshake)
457 * @dccps_hc_rx_ackvec - rx half connection ack vector
458 * @dccps_hc_rx_ccid - CCID used for the receiver (or receiving half-connection)
459 * @dccps_hc_tx_ccid - CCID used for the sender (or sending half-connection)
460 * @dccps_options_received - parsed set of retrieved options
230#define DCCP_SOCKOPT_CCID_RX_INFO 128
231#define DCCP_SOCKOPT_CCID_TX_INFO 192
232
233/* maximum number of services provided on the same listening port */
234#define DCCP_SERVICE_LIST_MAX_LEN 32
235
236#ifdef __KERNEL__
237

--- 232 unchanged lines hidden (view full) ---

470 * @dccps_ndp_count - number of Non Data Packets since last data packet
471 * @dccps_mss_cache - current value of MSS (path MTU minus header sizes)
472 * @dccps_rate_last - timestamp for rate-limiting DCCP-Sync (RFC 4340, 7.5.4)
473 * @dccps_featneg - tracks feature-negotiation state (mostly during handshake)
474 * @dccps_hc_rx_ackvec - rx half connection ack vector
475 * @dccps_hc_rx_ccid - CCID used for the receiver (or receiving half-connection)
476 * @dccps_hc_tx_ccid - CCID used for the sender (or sending half-connection)
477 * @dccps_options_received - parsed set of retrieved options
478 * @dccps_qpolicy - TX dequeueing policy, one of %dccp_packet_dequeueing_policy
479 * @dccps_tx_qlen - maximum length of the TX queue
461 * @dccps_role - role of this sock, one of %dccp_role
462 * @dccps_hc_rx_insert_options - receiver wants to add options when acking
463 * @dccps_hc_tx_insert_options - sender wants to add options when sending
464 * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3)
480 * @dccps_role - role of this sock, one of %dccp_role
481 * @dccps_hc_rx_insert_options - receiver wants to add options when acking
482 * @dccps_hc_tx_insert_options - sender wants to add options when sending
483 * @dccps_server_timewait - server holds timewait state on close (RFC 4340, 8.3)
484 * @dccps_sync_scheduled - flag which signals "send out-of-band message soon"
465 * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets
466 * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing)
467 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
468 */
469struct dccp_sock {
470 /* inet_connection_sock has to be the first member of dccp_sock */
471 struct inet_connection_sock dccps_inet_connection;
472#define dccps_syn_rtt dccps_inet_connection.icsk_ack.lrcvtime

--- 21 unchanged lines hidden (view full) ---

494 __u8 dccps_send_ndp_count:1;
495 __u64 dccps_ndp_count:48;
496 unsigned long dccps_rate_last;
497 struct list_head dccps_featneg;
498 struct dccp_ackvec *dccps_hc_rx_ackvec;
499 struct ccid *dccps_hc_rx_ccid;
500 struct ccid *dccps_hc_tx_ccid;
501 struct dccp_options_received dccps_options_received;
485 * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets
486 * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing)
487 * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
488 */
489struct dccp_sock {
490 /* inet_connection_sock has to be the first member of dccp_sock */
491 struct inet_connection_sock dccps_inet_connection;
492#define dccps_syn_rtt dccps_inet_connection.icsk_ack.lrcvtime

--- 21 unchanged lines hidden (view full) ---

514 __u8 dccps_send_ndp_count:1;
515 __u64 dccps_ndp_count:48;
516 unsigned long dccps_rate_last;
517 struct list_head dccps_featneg;
518 struct dccp_ackvec *dccps_hc_rx_ackvec;
519 struct ccid *dccps_hc_rx_ccid;
520 struct ccid *dccps_hc_tx_ccid;
521 struct dccp_options_received dccps_options_received;
522 __u8 dccps_qpolicy;
523 __u32 dccps_tx_qlen;
502 enum dccp_role dccps_role:2;
503 __u8 dccps_hc_rx_insert_options:1;
504 __u8 dccps_hc_tx_insert_options:1;
505 __u8 dccps_server_timewait:1;
524 enum dccp_role dccps_role:2;
525 __u8 dccps_hc_rx_insert_options:1;
526 __u8 dccps_hc_tx_insert_options:1;
527 __u8 dccps_server_timewait:1;
528 __u8 dccps_sync_scheduled:1;
506 struct tasklet_struct dccps_xmitlet;
507 struct timer_list dccps_xmit_timer;
508};
509
510static inline struct dccp_sock *dccp_sk(const struct sock *sk)
511{
512 return (struct dccp_sock *)sk;
513}

--- 15 unchanged lines hidden ---
529 struct tasklet_struct dccps_xmitlet;
530 struct timer_list dccps_xmit_timer;
531};
532
533static inline struct dccp_sock *dccp_sk(const struct sock *sk)
534{
535 return (struct dccp_sock *)sk;
536}

--- 15 unchanged lines hidden ---