summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_structs.h
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-03-31 11:47:30 +0000
committerrrs <rrs@FreeBSD.org>2007-03-31 11:47:30 +0000
commit9afebb96fc58efdcb69e55a2863d17e89d803dbe (patch)
treefc7c5aaca2d2ae2e7c1e6abe827b9f910acb9e6b /sys/netinet/sctp_structs.h
parent897ccc3f10f608b560a198d5f41a22991a08559f (diff)
downloadFreeBSD-src-9afebb96fc58efdcb69e55a2863d17e89d803dbe.zip
FreeBSD-src-9afebb96fc58efdcb69e55a2863d17e89d803dbe.tar.gz
- Found bug in min split point bundling which caused
incorrect, non-bundlable fragmentation. - Added min residual to better control split points for both how big a msg must be as well as how much needs to be left over. - With our new algo in place, we need to implicitly set "end of msg" on the sp-> structure otherwise we end up with "hung" associations. - Room reserved up front in IP header by pushing IP header to back of mbuf. - Fix so FR's peg count of retransmissions needed. - Fix so an unlucky chunk that never gets across will kill the assoc via the kill timer and send an abort too. - Fix bug in sctp_input which can result in a crash. - Do not strip off IP options anymore. - Clean up sctp_calculate_rto(). - Get rid of unused sysctl. - Fixed so we discard all M-Cast - Fixed so port check done AFTER checksum - Fixed bug in fragmentation code that prevented us from fragmenting a small complete message when we needed to. - Window probes were not marked back to unsent and flight adjusted when a sack came in with no window change or accepting of the probe data. We now fix this with having a mark on the net and the chunk so we can clear it out when the sack arrives forcing it to retran just like it was "new" this improves the handling of window probes, which were dropped by the receiver. - Tighten AUTH protocol error checks during INIT/INIT-ACK exchange
Diffstat (limited to 'sys/netinet/sctp_structs.h')
-rw-r--r--sys/netinet/sctp_structs.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/netinet/sctp_structs.h b/sys/netinet/sctp_structs.h
index d57e3a0..fb45fc8 100644
--- a/sys/netinet/sctp_structs.h
+++ b/sys/netinet/sctp_structs.h
@@ -201,7 +201,6 @@ struct sctp_nets {
uint32_t cwnd; /* actual cwnd */
uint32_t prev_cwnd; /* cwnd before any processing */
uint32_t partial_bytes_acked; /* in CA tracks when to incr a MTU */
- uint32_t rtt_variance;
uint32_t prev_rtt;
/* tracking variables to avoid the aloc/free in sack processing */
unsigned int net_ack;
@@ -226,6 +225,12 @@ struct sctp_nets {
uint32_t heartbeat_random2;
uint32_t tos_flowlabel;
+ struct timeval start_time; /* time when this net was created */
+
+ uint32_t marked_retrans;/* number or DATA chunks marked for timer
+ * based retransmissions */
+ uint32_t marked_fastretrans;
+
/* if this guy is ok or not ... status */
uint16_t dest_state;
/* number of transmit failures to down this guy */
@@ -236,7 +241,6 @@ struct sctp_nets {
uint8_t fast_retran_loss_recovery;
uint8_t will_exit_fast_recovery;
/* Flags that probably can be combined into dest_state */
- uint8_t rto_variance_dir; /* increase = 1, decreasing = 0 */
uint8_t fast_retran_ip; /* fast retransmit in progress */
uint8_t hb_responded;
uint8_t saw_newack; /* CMT's SFR algorithm flag */
@@ -266,13 +270,10 @@ struct sctp_nets {
uint8_t new_pseudo_cumack; /* CMT CUC algorithm. Flag used to
* indicate if a new pseudo-cumack or
* rtx-pseudo-cumack has been received */
+ uint8_t window_probe; /* Doing a window probe? */
#ifdef SCTP_HIGH_SPEED
uint8_t last_hs_used; /* index into the last HS table entry we used */
#endif
- struct timeval start_time; /* time when this net was created */
- uint32_t marked_retrans;/* number or DATA chunks marked for timer
- * based retransmissions */
- uint32_t marked_fastretrans;
};
@@ -341,6 +342,7 @@ struct sctp_tmit_chunk {
uint8_t no_fr_allowed;
uint8_t pr_sctp_on;
uint8_t copy_by_ref;
+ uint8_t window_probe;
};
/*
OpenPOWER on IntegriCloud