diff options
Diffstat (limited to 'include/linux/dccp.h')
-rw-r--r-- | include/linux/dccp.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index 676333b9fad0..d6f4ec467a4b 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
@@ -169,6 +169,12 @@ enum { | |||
169 | DCCPO_MAX_CCID_SPECIFIC = 255, | 169 | DCCPO_MAX_CCID_SPECIFIC = 255, |
170 | }; | 170 | }; |
171 | 171 | ||
172 | /* DCCP CCIDS */ | ||
173 | enum { | ||
174 | DCCPC_CCID2 = 2, | ||
175 | DCCPC_CCID3 = 3, | ||
176 | }; | ||
177 | |||
172 | /* DCCP features */ | 178 | /* DCCP features */ |
173 | enum { | 179 | enum { |
174 | DCCPF_RESERVED = 0, | 180 | DCCPF_RESERVED = 0, |
@@ -320,7 +326,7 @@ static inline unsigned int dccp_hdr_len(const struct sk_buff *skb) | |||
320 | /* initial values for each feature */ | 326 | /* initial values for each feature */ |
321 | #define DCCPF_INITIAL_SEQUENCE_WINDOW 100 | 327 | #define DCCPF_INITIAL_SEQUENCE_WINDOW 100 |
322 | #define DCCPF_INITIAL_ACK_RATIO 2 | 328 | #define DCCPF_INITIAL_ACK_RATIO 2 |
323 | #define DCCPF_INITIAL_CCID 2 | 329 | #define DCCPF_INITIAL_CCID DCCPC_CCID2 |
324 | #define DCCPF_INITIAL_SEND_ACK_VECTOR 1 | 330 | #define DCCPF_INITIAL_SEND_ACK_VECTOR 1 |
325 | /* FIXME: for now we're default to 1 but it should really be 0 */ | 331 | /* FIXME: for now we're default to 1 but it should really be 0 */ |
326 | #define DCCPF_INITIAL_SEND_NDP_COUNT 1 | 332 | #define DCCPF_INITIAL_SEND_NDP_COUNT 1 |
@@ -404,6 +410,7 @@ struct dccp_service_list { | |||
404 | }; | 410 | }; |
405 | 411 | ||
406 | #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) | 412 | #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) |
413 | #define DCCP_SERVICE_CODE_IS_ABSENT 0 | ||
407 | 414 | ||
408 | static inline int dccp_list_has_service(const struct dccp_service_list *sl, | 415 | static inline int dccp_list_has_service(const struct dccp_service_list *sl, |
409 | const __be32 service) | 416 | const __be32 service) |
@@ -438,6 +445,7 @@ struct dccp_ackvec; | |||
438 | * @dccps_role - Role of this sock, one of %dccp_role | 445 | * @dccps_role - Role of this sock, one of %dccp_role |
439 | * @dccps_ndp_count - number of Non Data Packets since last data packet | 446 | * @dccps_ndp_count - number of Non Data Packets since last data packet |
440 | * @dccps_hc_rx_ackvec - rx half connection ack vector | 447 | * @dccps_hc_rx_ackvec - rx half connection ack vector |
448 | * @dccps_xmit_timer - timer for when CCID is not ready to send | ||
441 | */ | 449 | */ |
442 | struct dccp_sock { | 450 | struct dccp_sock { |
443 | /* inet_connection_sock has to be the first member of dccp_sock */ | 451 | /* inet_connection_sock has to be the first member of dccp_sock */ |
@@ -470,6 +478,7 @@ struct dccp_sock { | |||
470 | enum dccp_role dccps_role:2; | 478 | enum dccp_role dccps_role:2; |
471 | __u8 dccps_hc_rx_insert_options:1; | 479 | __u8 dccps_hc_rx_insert_options:1; |
472 | __u8 dccps_hc_tx_insert_options:1; | 480 | __u8 dccps_hc_tx_insert_options:1; |
481 | struct timer_list dccps_xmit_timer; | ||
473 | }; | 482 | }; |
474 | 483 | ||
475 | static inline struct dccp_sock *dccp_sk(const struct sock *sk) | 484 | static inline struct dccp_sock *dccp_sk(const struct sock *sk) |
@@ -482,11 +491,6 @@ static inline struct dccp_minisock *dccp_msk(const struct sock *sk) | |||
482 | return (struct dccp_minisock *)&dccp_sk(sk)->dccps_minisock; | 491 | return (struct dccp_minisock *)&dccp_sk(sk)->dccps_minisock; |
483 | } | 492 | } |
484 | 493 | ||
485 | static inline int dccp_service_not_initialized(const struct sock *sk) | ||
486 | { | ||
487 | return dccp_sk(sk)->dccps_service == DCCP_SERVICE_INVALID_VALUE; | ||
488 | } | ||
489 | |||
490 | static inline const char *dccp_role(const struct sock *sk) | 494 | static inline const char *dccp_role(const struct sock *sk) |
491 | { | 495 | { |
492 | switch (dccp_sk(sk)->dccps_role) { | 496 | switch (dccp_sk(sk)->dccps_role) { |