diff options
author | Andrea Bittau <a.bittau@cs.ucl.ac.uk> | 2006-03-20 17:19:55 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 17:19:55 -0800 |
commit | 02bcf28c82c8e4b72c4b89bddbbb6fea1a646d07 (patch) | |
tree | d70435d97b3454dcafb6decd6defd603fdf10f82 /net/dccp/ackvec.h | |
parent | e229c2fb3370a0c4ebac06cad67ce1cb35abcfe6 (diff) | |
download | lwn-02bcf28c82c8e4b72c4b89bddbbb6fea1a646d07.tar.gz lwn-02bcf28c82c8e4b72c4b89bddbbb6fea1a646d07.zip |
[DCCP] ackvec: Introduce ack vector records
Based on a patch by Andrea Bittau.
Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ackvec.h')
-rw-r--r-- | net/dccp/ackvec.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/net/dccp/ackvec.h b/net/dccp/ackvec.h index 470bae8a9d07..ec7a89bb7b39 100644 --- a/net/dccp/ackvec.h +++ b/net/dccp/ackvec.h @@ -13,6 +13,7 @@ #include <linux/config.h> #include <linux/compiler.h> +#include <linux/list.h> #include <linux/time.h> #include <linux/types.h> @@ -42,11 +43,8 @@ * Ack Vectors it has recently sent. For each packet sent carrying an * Ack Vector, it remembers four variables: * - * @dccpav_ack_seqno - the Sequence Number used for the packet - * (HC-Receiver seqno) * @dccpav_ack_ptr - the value of buf_head at the time of acknowledgement. - * @dccpav_ack_ackno - the Acknowledgement Number used for the packet - * (HC-Sender seqno) + * @dccpav_records - list of dccp_ackvec_record * @dccpav_ack_nonce - the one-bit sum of the ECN Nonces for all State 0. * * @dccpav_time - the time in usecs @@ -54,8 +52,7 @@ */ struct dccp_ackvec { u64 dccpav_buf_ackno; - u64 dccpav_ack_seqno; - u64 dccpav_ack_ackno; + struct list_head dccpav_records; struct timeval dccpav_time; u8 dccpav_buf_head; u8 dccpav_buf_tail; @@ -67,6 +64,28 @@ struct dccp_ackvec { u8 dccpav_buf[DCCP_MAX_ACKVEC_LEN]; }; +/** struct dccp_ackvec_record - ack vector record + * + * ACK vector record as defined in Appendix A of spec. + * + * The list is sorted by dccpavr_ack_seqno + * + * @dccpavr_node - node in dccpav_records + * @dccpavr_ack_seqno - sequence number of the packet this record was sent on + * @dccpavr_ack_ackno - sequence number being acknowledged + * @dccpavr_ack_ptr - pointer into dccpav_buf where this record starts + * @dccpavr_ack_nonce - dccpav_ack_nonce at the time this record was sent + * @dccpavr_sent_len - lenght of the record in dccpav_buf + */ +struct dccp_ackvec_record { + struct list_head dccpavr_node; + u64 dccpavr_ack_seqno; + u64 dccpavr_ack_ackno; + u8 dccpavr_ack_ptr; + u8 dccpavr_ack_nonce; + u8 dccpavr_sent_len; +}; + struct sock; struct sk_buff; |