summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2012-04-12 14:32:23 -0700
committerJohn W. Linville <linville@tuxdriver.com>2012-04-16 14:19:29 -0400
commitec14bcd20f5139a3dc42cfc34cdcebcbdc062c00 (patch)
treeef7122cf0abbf407db9c0c0ce4eb9dd03b94e16b /net
parenta802a6eba13282ddd5718f8db9d476e42e84e2ba (diff)
downloadlinux-ec14bcd20f5139a3dc42cfc34cdcebcbdc062c00.tar.gz
linux-ec14bcd20f5139a3dc42cfc34cdcebcbdc062c00.tar.bz2
linux-ec14bcd20f5139a3dc42cfc34cdcebcbdc062c00.zip
mac80211: Take into account TSF adjustment latency in Toffset setpoint
When testing mesh synchronization we observed a global TSF slowdown that was dependent on the number of synchronized mesh stations. This seems to be caused by the TSF adjustment (read/write) latency. Adding a small margin to the Toffset setpoint solved the problem. Signed-off-by: Shinichi Hotori <hotorinn@gmail.com> Signed-off-by: Yu Niiro <yu.niiro@gmail.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/mesh_sync.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/mesh_sync.c b/net/mac80211/mesh_sync.c
index 22a5f1e66996..ff60d6bcc631 100644
--- a/net/mac80211/mesh_sync.c
+++ b/net/mac80211/mesh_sync.c
@@ -24,11 +24,17 @@
*/
#define TOFFSET_MINIMUM_ADJUSTMENT 10
+/* This is not in the standard. It is a margin added to the
+ * Toffset setpoint to mitigate TSF overcorrection
+ * introduced by TSF adjustment latency.
+ */
+#define TOFFSET_SET_MARGIN 20
+
/* This is not in the standard. It represents the maximum Toffset jump above
* which we'll invalidate the Toffset setpoint and choose a new setpoint. This
* could be, for instance, in case a neighbor is restarted and its TSF counter
* reset.
- * */
+ */
#define TOFFSET_MAXIMUM_ADJUSTMENT 30000 /* 30 ms */
struct sync_method {