summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorDavid S. Miller <davem@nuts.davemloft.net>2004-04-21 09:10:52 -0700
committerDavid S. Miller <davem@nuts.davemloft.net>2004-04-21 09:10:52 -0700
commit16a76bdbafd6c681dd15419183308bba1dd58063 (patch)
treeecbd1f1877b7a48cb83842fec28bcb3d2e8e96ca /include/linux
parent91a793870dd95b4b337339de10b87803fce3433c (diff)
[TCP]: Add vegas congestion avoidance support.
A forward port of an old 2.3.x kernel hack done years ago. I (DaveM) did the first rough port, Stephen Hemminger actually cleaned it up and made it usable.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/sysctl.h4
-rw-r--r--include/linux/tcp.h12
2 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index f32c83568201..46c9268c9079 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -327,6 +327,10 @@ enum
NET_TCP_WESTWOOD=95,
NET_IPV4_IGMP_MAX_MSF=96,
NET_TCP_NO_METRICS_SAVE=97,
+ NET_TCP_VEGAS=98,
+ NET_TCP_VEGAS_ALPHA=99,
+ NET_TCP_VEGAS_BETA=100,
+ NET_TCP_VEGAS_GAMMA=101,
};
enum {
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index f8c91e734737..00bece841380 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -388,6 +388,18 @@ struct tcp_opt {
__u32 rtt;
__u32 rtt_min; /* minimum observed RTT */
} westwood;
+
+/* Vegas variables */
+ struct {
+ __u32 beg_snd_nxt; /* right edge during last RTT */
+ __u32 beg_snd_una; /* left edge during last RTT */
+ __u32 beg_snd_cwnd; /* saves the size of the cwnd */
+ __u8 do_vegas; /* do vegas for this connection */
+ __u8 doing_vegas_now;/* if true, do vegas for this RTT */
+ __u16 cntRTT; /* # of RTTs measured within last RTT */
+ __u32 minRTT; /* min of RTTs measured within last RTT (in usec) */
+ __u32 baseRTT; /* the min of all Vegas RTT measurements seen (in usec) */
+ } vegas;
};
/* WARNING: don't change the layout of the members in tcp_sock! */