]> Pileus Git - ~andy/linux/blobdiff - net/dccp/dccp.h
[TFRC]: Put RX/TX initialisation into tfrc.c
[~andy/linux] / net / dccp / dccp.h
index a602d9212c648584078f0d4374a92dc0a977115f..f4a5ea116e34868581f626d0ac1edfce46137ca2 100644 (file)
@@ -294,6 +294,8 @@ extern unsigned int dccp_poll(struct file *file, struct socket *sock,
 extern int        dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr,
                                   int addr_len);
 
+extern struct sk_buff *dccp_ctl_make_reset(struct socket *ctl,
+                                          struct sk_buff *skb);
 extern int        dccp_send_reset(struct sock *sk, enum dccp_reset_codes code);
 extern void       dccp_send_close(struct sock *sk, const int active);
 extern int        dccp_invalid_packet(struct sk_buff *skb);
@@ -332,6 +334,7 @@ struct dccp_skb_cb {
 
 #define DCCP_SKB_CB(__skb) ((struct dccp_skb_cb *)&((__skb)->cb[0]))
 
+/* RFC 4340, sec. 7.7 */
 static inline int dccp_non_data_packet(const struct sk_buff *skb)
 {
        const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;
@@ -344,6 +347,17 @@ static inline int dccp_non_data_packet(const struct sk_buff *skb)
               type == DCCP_PKT_SYNCACK;
 }
 
+/* RFC 4340, sec. 7.7 */
+static inline int dccp_data_packet(const struct sk_buff *skb)
+{
+       const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;
+
+       return type == DCCP_PKT_DATA     ||
+              type == DCCP_PKT_DATAACK  ||
+              type == DCCP_PKT_REQUEST  ||
+              type == DCCP_PKT_RESPONSE;
+}
+
 static inline int dccp_packet_without_ack(const struct sk_buff *skb)
 {
        const __u8 type = DCCP_SKB_CB(skb)->dccpd_type;