aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sctp/structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r--include/net/sctp/structs.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 0a474568b003..219043a67bf7 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -231,6 +231,11 @@ extern struct sctp_globals {
231 /* Flag to indicate whether computing and verifying checksum 231 /* Flag to indicate whether computing and verifying checksum
232 * is disabled. */ 232 * is disabled. */
233 int checksum_disable; 233 int checksum_disable;
234
235 /* Threshold for rwnd update SACKS. Receive buffer shifted this many
236 * bits is an indicator of when to send and window update SACK.
237 */
238 int rwnd_update_shift;
234} sctp_globals; 239} sctp_globals;
235 240
236#define sctp_rto_initial (sctp_globals.rto_initial) 241#define sctp_rto_initial (sctp_globals.rto_initial)
@@ -267,6 +272,7 @@ extern struct sctp_globals {
267#define sctp_prsctp_enable (sctp_globals.prsctp_enable) 272#define sctp_prsctp_enable (sctp_globals.prsctp_enable)
268#define sctp_auth_enable (sctp_globals.auth_enable) 273#define sctp_auth_enable (sctp_globals.auth_enable)
269#define sctp_checksum_disable (sctp_globals.checksum_disable) 274#define sctp_checksum_disable (sctp_globals.checksum_disable)
275#define sctp_rwnd_upd_shift (sctp_globals.rwnd_update_shift)
270 276
271/* SCTP Socket type: UDP or TCP style. */ 277/* SCTP Socket type: UDP or TCP style. */
272typedef enum { 278typedef enum {
@@ -772,6 +778,7 @@ int sctp_user_addto_chunk(struct sctp_chunk *chunk, int off, int len,
772 struct iovec *data); 778 struct iovec *data);
773void sctp_chunk_free(struct sctp_chunk *); 779void sctp_chunk_free(struct sctp_chunk *);
774void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); 780void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data);
781void *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data);
775struct sctp_chunk *sctp_chunkify(struct sk_buff *, 782struct sctp_chunk *sctp_chunkify(struct sk_buff *,
776 const struct sctp_association *, 783 const struct sctp_association *,
777 struct sock *); 784 struct sock *);
@@ -935,6 +942,8 @@ struct sctp_transport {
935 /* Data that has been sent, but not acknowledged. */ 942 /* Data that has been sent, but not acknowledged. */
936 __u32 flight_size; 943 __u32 flight_size;
937 944
945 __u32 burst_limited; /* Holds old cwnd when max.burst is applied */
946
938 /* TSN marking the fast recovery exit point */ 947 /* TSN marking the fast recovery exit point */
939 __u32 fast_recovery_exit; 948 __u32 fast_recovery_exit;
940 949
@@ -943,12 +952,6 @@ struct sctp_transport {
943 /* Source address. */ 952 /* Source address. */
944 union sctp_addr saddr; 953 union sctp_addr saddr;
945 954
946 /* When was the last time(in jiffies) that a data packet was sent on
947 * this transport? This is used to adjust the cwnd when the transport
948 * becomes inactive.
949 */
950 unsigned long last_time_used;
951
952 /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to 955 /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
953 * the destination address every heartbeat interval. 956 * the destination address every heartbeat interval.
954 */ 957 */
@@ -987,7 +990,7 @@ struct sctp_transport {
987 int init_sent_count; 990 int init_sent_count;
988 991
989 /* state : The current state of this destination, 992 /* state : The current state of this destination,
990 * : i.e. SCTP_ACTIVE, SCTP_INACTIVE, SCTP_UNKOWN. 993 * : i.e. SCTP_ACTIVE, SCTP_INACTIVE, SCTP_UNKNOWN.
991 */ 994 */
992 int state; 995 int state;
993 996
@@ -1007,6 +1010,9 @@ struct sctp_transport {
1007 /* Heartbeat timer is per destination. */ 1010 /* Heartbeat timer is per destination. */
1008 struct timer_list hb_timer; 1011 struct timer_list hb_timer;
1009 1012
1013 /* Timer to handle ICMP proto unreachable envets */
1014 struct timer_list proto_unreach_timer;
1015
1010 /* Since we're using per-destination retransmission timers 1016 /* Since we're using per-destination retransmission timers
1011 * (see above), we're also using per-destination "transmitted" 1017 * (see above), we're also using per-destination "transmitted"
1012 * queues. This probably ought to be a private struct 1018 * queues. This probably ought to be a private struct
@@ -1069,6 +1075,8 @@ void sctp_transport_put(struct sctp_transport *);
1069void sctp_transport_update_rto(struct sctp_transport *, __u32); 1075void sctp_transport_update_rto(struct sctp_transport *, __u32);
1070void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32); 1076void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32);
1071void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t); 1077void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t);
1078void sctp_transport_burst_limited(struct sctp_transport *);
1079void sctp_transport_burst_reset(struct sctp_transport *);
1072unsigned long sctp_transport_timeout(struct sctp_transport *); 1080unsigned long sctp_transport_timeout(struct sctp_transport *);
1073void sctp_transport_reset(struct sctp_transport *); 1081void sctp_transport_reset(struct sctp_transport *);
1074void sctp_transport_update_pmtu(struct sctp_transport *, u32); 1082void sctp_transport_update_pmtu(struct sctp_transport *, u32);