diff options
Diffstat (limited to 'net/ipv4/tcp_lp.c')
| -rw-r--r-- | net/ipv4/tcp_lp.c | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/net/ipv4/tcp_lp.c b/net/ipv4/tcp_lp.c index 1f977b6ee9a1..48f28d617ce6 100644 --- a/net/ipv4/tcp_lp.c +++ b/net/ipv4/tcp_lp.c | |||
| @@ -3,13 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * TCP Low Priority is a distributed algorithm whose goal is to utilize only | 4 | * TCP Low Priority is a distributed algorithm whose goal is to utilize only |
| 5 | * the excess network bandwidth as compared to the ``fair share`` of | 5 | * the excess network bandwidth as compared to the ``fair share`` of |
| 6 | * bandwidth as targeted by TCP. Available from: | 6 | * bandwidth as targeted by TCP. |
| 7 | * http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf | ||
| 8 | * | 7 | * |
| 9 | * Original Author: | ||
| 10 | * Aleksandar Kuzmanovic <akuzma@northwestern.edu> | ||
| 11 | * | ||
| 12 | * See http://www-ece.rice.edu/networks/TCP-LP/ for their implementation. | ||
| 13 | * As of 2.6.13, Linux supports pluggable congestion control algorithms. | 8 | * As of 2.6.13, Linux supports pluggable congestion control algorithms. |
| 14 | * Due to the limitation of the API, we take the following changes from | 9 | * Due to the limitation of the API, we take the following changes from |
| 15 | * the original TCP-LP implementation: | 10 | * the original TCP-LP implementation: |
| @@ -24,11 +19,20 @@ | |||
| 24 | * o OWD is handled in relative format, where local time stamp will in | 19 | * o OWD is handled in relative format, where local time stamp will in |
| 25 | * tcp_time_stamp format. | 20 | * tcp_time_stamp format. |
| 26 | * | 21 | * |
| 27 | * Port from 2.4.19 to 2.6.16 as module by: | 22 | * Original Author: |
| 28 | * Wong Hoi Sing Edison <hswong3i@gmail.com> | 23 | * Aleksandar Kuzmanovic <akuzma@northwestern.edu> |
| 29 | * Hung Hing Lun <hlhung3i@gmail.com> | 24 | * Available from: |
| 25 | * http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf | ||
| 26 | * Original implementation for 2.4.19: | ||
| 27 | * http://www-ece.rice.edu/networks/TCP-LP/ | ||
| 30 | * | 28 | * |
| 31 | * Version: $Id: tcp_lp.c,v 1.22 2006-05-02 18:18:19 hswong3i Exp $ | 29 | * 2.6.x module Authors: |
| 30 | * Wong Hoi Sing, Edison <hswong3i@gmail.com> | ||
| 31 | * Hung Hing Lun, Mike <hlhung3i@gmail.com> | ||
| 32 | * SourceForge project page: | ||
| 33 | * http://tcp-lp-mod.sourceforge.net/ | ||
| 34 | * | ||
| 35 | * Version: $Id: tcp_lp.c,v 1.24 2006/09/05 20:22:53 hswong3i Exp $ | ||
| 32 | */ | 36 | */ |
| 33 | 37 | ||
| 34 | #include <linux/config.h> | 38 | #include <linux/config.h> |
| @@ -153,16 +157,19 @@ static u32 tcp_lp_remote_hz_estimator(struct sock *sk) | |||
| 153 | if (m < 0) | 157 | if (m < 0) |
| 154 | m = -m; | 158 | m = -m; |
| 155 | 159 | ||
| 156 | if (rhz != 0) { | 160 | if (rhz > 0) { |
| 157 | m -= rhz >> 6; /* m is now error in remote HZ est */ | 161 | m -= rhz >> 6; /* m is now error in remote HZ est */ |
| 158 | rhz += m; /* 63/64 old + 1/64 new */ | 162 | rhz += m; /* 63/64 old + 1/64 new */ |
| 159 | } else | 163 | } else |
| 160 | rhz = m << 6; | 164 | rhz = m << 6; |
| 161 | 165 | ||
| 166 | out: | ||
| 162 | /* record time for successful remote HZ calc */ | 167 | /* record time for successful remote HZ calc */ |
| 163 | lp->flag |= LP_VALID_RHZ; | 168 | if (rhz > 0) |
| 169 | lp->flag |= LP_VALID_RHZ; | ||
| 170 | else | ||
| 171 | lp->flag &= ~LP_VALID_RHZ; | ||
| 164 | 172 | ||
| 165 | out: | ||
| 166 | /* record reference time stamp */ | 173 | /* record reference time stamp */ |
| 167 | lp->remote_ref_time = tp->rx_opt.rcv_tsval; | 174 | lp->remote_ref_time = tp->rx_opt.rcv_tsval; |
| 168 | lp->local_ref_time = tp->rx_opt.rcv_tsecr; | 175 | lp->local_ref_time = tp->rx_opt.rcv_tsecr; |
| @@ -333,6 +340,6 @@ static void __exit tcp_lp_unregister(void) | |||
| 333 | module_init(tcp_lp_register); | 340 | module_init(tcp_lp_register); |
| 334 | module_exit(tcp_lp_unregister); | 341 | module_exit(tcp_lp_unregister); |
| 335 | 342 | ||
| 336 | MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun"); | 343 | MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun Mike"); |
| 337 | MODULE_LICENSE("GPL"); | 344 | MODULE_LICENSE("GPL"); |
| 338 | MODULE_DESCRIPTION("TCP Low Priority"); | 345 | MODULE_DESCRIPTION("TCP Low Priority"); |
